diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 93922c41147..2a15c26eb8e 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -34,7 +34,7 @@ jobs: - name: "Install: Node.js" uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - name: "Show: Versioning" run: | diff --git a/ethexe/cli/src/tests.rs b/ethexe/cli/src/tests.rs index cb36c6988c6..8618be28953 100644 --- a/ethexe/cli/src/tests.rs +++ b/ethexe/cli/src/tests.rs @@ -359,6 +359,9 @@ async fn incoming_transfers() { let ping_id = res.program_id; let wvara = env.ethereum.router().wvara(); + + assert_eq!(wvara.query().decimals().await.unwrap(), 12); + let ping = env.ethereum.mirror(ping_id.to_address_lossy().into()); let on_eth_balance = wvara diff --git a/ethexe/contracts/src/Router.sol b/ethexe/contracts/src/Router.sol index 8f6e10d8867..e8848f3c7e0 100644 --- a/ethexe/contracts/src/Router.sol +++ b/ethexe/contracts/src/Router.sol @@ -11,6 +11,7 @@ import {IRouter} from "./IRouter.sol"; import {IMirror} from "./IMirror.sol"; import {IWrappedVara} from "./IWrappedVara.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; contract Router is IRouter, OwnableUpgradeable, ReentrancyGuardTransient { using ECDSA for bytes32; @@ -297,7 +298,9 @@ contract Router is IRouter, OwnableUpgradeable, ReentrancyGuardTransient { require(router.codes[codeId] == CodeState.Validated, "code must be validated before program creation"); uint128 baseFeeValue = baseFee(); - uint128 executableBalance = baseFeeValue * 10; + + // By default get 10 WVara for executable balance. + uint128 executableBalance = uint128(10 ** IERC20Metadata(router.wrappedVara).decimals()); uint128 totalValue = baseFeeValue + executableBalance + _value; diff --git a/ethexe/contracts/src/WrappedVara.sol b/ethexe/contracts/src/WrappedVara.sol index ce3e72d0240..a00ef5635ba 100644 --- a/ethexe/contracts/src/WrappedVara.sol +++ b/ethexe/contracts/src/WrappedVara.sol @@ -36,6 +36,10 @@ contract WrappedVara is function reinitialize() public onlyOwner reinitializer(2) {} + function decimals() public pure override returns (uint8) { + return 12; + } + function mint(address to, uint256 amount) public onlyOwner { _mint(to, amount); } diff --git a/ethexe/ethereum/Router.json b/ethexe/ethereum/Router.json index 99766079e14..2982c08f2eb 100644 --- a/ethexe/ethereum/Router.json +++ b/ethexe/ethereum/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"baseWeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRouter.CodeState"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"blockCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.BlockCommitment[]","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"prevCommitmentHash","type":"bytes32","internalType":"bytes32"},{"name":"predBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct IRouter.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct IRouter.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 IRouter.OutgoingMessage[]","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 IRouter.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCodes","inputs":[{"name":"codeCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProgram","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"decoderImplementation","type":"address","internalType":"address"},{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStorageSlot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_validatorsKeys","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastBlockCommitmentHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"mirror","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"program","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":"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":"blobTxHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseWeight","inputs":[{"name":"_baseWeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"_mirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStorageSlot","inputs":[{"name":"namespace","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setValuePerWeight","inputs":[{"name":"_valuePerWeight","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","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":"updateValidators","inputs":[{"name":"validatorsAddressArray","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorExists","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"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":"valuePerWeight","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BaseWeightChanged","inputs":[{"name":"baseWeight","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlockCommitted","inputs":[{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"id","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"},{"name":"blobTxHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"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":[],"anonymous":false},{"type":"event","name":"ValidatorsSetChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValuePerWeightChanged","inputs":[{"name":"valuePerWeight","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"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":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","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":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b60405161289290816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611c6e575080630834fecc14611c375780631c149d8a14611aef57806326637f6d146111c357806328e24b3d146111995780632dacfb691461116c5780633d43b4181461111a578063444d9172146110e25780635686cad514611030578063666d124c14610f345780636c2eb35014610d2c5780636ef25c3a14610d01578063715018a614610c9a57806378ee5dec14610c625780638028861a14610be55780638074b45514610b2657806388f50cf014610aee5780638da5cb5b14610aba5780638febbd5914610a6d5780639067088e14610a2557806396708226146109fc57806396a2ddfa146109cf578063a6bbbe1c14610924578063c13911e8146108de578063ca1e781914610867578063d3fd636414610831578063e71731e414610744578063e97d3eb31461051f578063ed612f8c146104f2578063edc87225146104d0578063efd81abc146104a3578063f2fde38b1461047d5763f8453e7c14610186575f80fd5b346104795760a03660031901126104795761019f611cc8565b602435906001600160a01b038216820361047957604435916001600160a01b038316830361047957606435926001600160a01b0384168403610479576084356001600160401b03811161047957366023820112156104795761020b903690602481600401359101611d85565b905f8051602061283d8339815191525460ff8160401c1615946001600160401b03821680159081610471575b6001149081610467575b15908161045e575b5061044f5767ffffffffffffffff1982166001175f8051602061283d8339815191525561028c9186610423575b5061027f6126b5565b6102876126b5565b611f61565b604094855161029b8782611cde565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102cf6121e0565b5190205f19810190811161040f5786519060208201908152602082526102f58883611cde565b60ff19915190201690815f8051602061281d833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161040f57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b03199091161790556103b8906124a7565b6103be57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f8051602061283d83398151915254165f8051602061283d833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f8051602061283d833981519152555f610276565b63f92ee8a960e01b5f5260045ffd5b9050155f610249565b303b159150610241565b879150610237565b5f80fd5b34610479576020366003190112610479576104a1610499611cc8565b6102876121e0565b005b34610479575f36600319011261047957602060055f8051602061281d833981519152540154604051908152f35b34610479575f3660031901126104795760206104ea611f23565b604051908152f35b34610479575f36600319011261047957602060085f8051602061281d833981519152540154604051908152f35b34610479576040366003190112610479576004356001600160401b0381116104795736602382011215610479578060040135906001600160401b038211610479573660248360061b83010111610479576024356001600160401b0381116104795761058f83913690600401611c98565b90925f8051602061281d83398151915254906060925f9560098401945b86881015610733578760061b8401976105fe604460248b01359a01926105d184611f08565b60405160208101918d8352151560f81b6040820152602181526105f5604182611cde565b51902090611de9565b98805f528760205260ff60405f205416600381101561071f576001036106ca57610629600193611f08565b15610687577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600a8a016106768154611f15565b9055604051908152a25b01966105ac565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a2610680565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104a193506020815191012061205b565b34610479576020366003190112610479576004356001600160401b03811161047957610774903690600401611c98565b61077c6121e0565b5f8051602061281d8339815191525460078101906008015f5b81548110156107cc575f82815260208082208301546001600160a01b0316825284905260409020805460ff19169055600101610795565b5080545f8255915081610813575b6107ed6107e8368587611d85565b6124a7565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107da575f815560010161081e565b34610479575f3660031901126104795760206001600160401b0360065f8051602061281d83398151915254015416604051908152f35b34610479575f3660031901126104795761089160085f8051602061281d8339815191525401611e75565b6040518091602082016020835281518091526020604084019201905f5b8181106108bc575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108ae565b346104795760203660031901126104795760095f8051602061281d83398151915254016004355f5260205260ff60405f205416604051600382101561071f576020918152f35b34610479576020366003190112610479576004356001600160801b03811690818103610479577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916109776121e0565b5f8051602061281d83398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610479575f366003190112610479576020600c5f8051602061281d833981519152540154604051908152f35b34610479575f3660031901126104795760205f8051602061281d83398151915254604051908152f35b3461047957602036600319011261047957610a3e611cc8565b600b5f8051602061281d83398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461047957602036600319011261047957610a86611cc8565b60075f8051602061281d83398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610479575f366003190112610479575f805160206127fd833981519152546040516001600160a01b039091168152602090f35b34610479575f366003190112610479575f8051602061281d83398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610479576044356001600160401b03811161047957610b51903690600401611d58565b90606435916001600160801b038316830361047957610b7583602435600435612233565b6001600160a01b0390911692909190833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b038183855af1918215610bda57602092610bca575b50604051908152f35b5f610bd491611cde565b82610bc1565b6040513d5f823e3d90fd5b34610479576020366003190112610479576004356001600160401b0381168091036104795760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c366121e0565b5f8051602061281d83398151915254600601805467ffffffffffffffff191682179055604051908152a1005b34610479575f366003190112610479575f8051602061281d83398151915254600201546040516001600160a01b039091168152602090f35b34610479575f36600319011261047957610cb26121e0565b5f805160206127fd83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610479575f366003190112610479576020610d1b611ec6565b6001600160801b0360405191168152f35b34610479575f36600319011261047957610d446121e0565b5f8051602061283d8339815191525460ff8160401c168015610f20575b61044f5768ffffffffffffffffff191668010000000000000002175f8051602061283d833981519152555f8051602061281d833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dc790600801611e75565b906040918251610dd78482611cde565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e0b6121e0565b5190205f19810190811161040f578351906020820190815260208252610e318583611cde565b60ff19915190201694855f8051602061281d833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161040f574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610ef3906124a7565b60ff60401b195f8051602061283d83398151915254165f8051602061283d833981519152555160028152a1005b5060026001600160401b0382161015610d61565b60a036600319011261047957610f48611cc8565b6044356024356064356001600160401b03811161047957610f6d903690600401611d58565b90608435946001600160801b038616860361047957610f8d868686612233565b949060018060a01b0316956040519060208201928352604082015260408152610fb7606082611cde565b519020853b1561047957604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610bda57611020575b50833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b5f61102a91611cde565b85610ff7565b34610479576020366003190112610479576004356001600160401b038111610479573660238201121561047957611071903690602481600401359101611d13565b6110796121e0565b602081519101205f19810190811161040f576040519060208201908152602082526110a5604083611cde565b9051902060ff19165f8051602061281d833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610479575f366003190112610479575f8051602061281d83398151915254600101546040516001600160a01b039091168152602090f35b3461047957602036600319011261047957611133611cc8565b61113b6121e0565b5f8051602061281d8339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610479575f36600319011261047957602060045f8051602061281d833981519152540154604051908152f35b34610479575f3660031901126104795760205f8051602061281d8339815191525454604051908152f35b34610479576040366003190112610479576004356001600160401b038111610479576111f3903690600401611c98565b906024356001600160401b03811161047957611213903690600401611c98565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009291925c611ae057919260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9060605b81831015611aa9578260051b84013590607e19853603018212156104795760045f8051602061281d83398151915254019384546020848801013503611a655760408387010135946112b7866125e8565b15611a1457838799949899969596013590556060935f978581890101905b6112e182828b01611fd2565b90508a1015611991576113008a6112fa84848d01611fd2565b90612007565b975f8051602061281d833981519152546113198a61262b565b6001600160a01b03165f908152600b820160205260409020541561193457600301546001600160801b03906020906001600160a01b031660448c5f61136960606113628461262b565b930161263f565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610bda57611908575b506001600160a01b036113b48a61262b565b169b5f9160605b6113c860808d018d61266b565b905084101561152f576113de60808d018d61266b565b859195101561151b578f916114896020918261140081606087028b010161262b565b6114116040606088028c010161263f565b6040519083820192606089028d013584526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152611457606482611cde565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611cde565b9461149b60206060840283010161262b565b6114ac60406060850284010161263f565b93803b15610479575f92836064926001600160801b0360405198899687956314503e5160e01b875260608b020135600487015260018060a01b031660248601521660448401525af1918215610bda5760019261150b575b5001926113bb565b5f61151591611cde565b5f611503565b634e487b7160e01b5f52603260045260245ffd5b9891979d9b9394959692509b989b60605f5b61154e60a08e018e611fd2565b905081101561179b5790818e9493928e60a0810161156b91611fd2565b6115759291612007565b60208101956115838761262b565b9660408301946115938685612029565b9099906115a26060870161263f565b9a60a087019b6115b18d6126a0565b8360405194859460208601978c3589526001600160601b03199060601b16604087015260548601378301916001600160801b03199060801b1660548301526080890135606483015263ffffffff60e01b1660848201520360540160148101825260340161161e9082611cde565b51902061162a91611de9565b9760808401356116db57506116416116489161262b565b9483612029565b9190946116576060850161263f565b823b15610479575f9485916001600160801b036116a56040519a8b988997889663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e18565b9116606483015203925af1918215610bda576001926116cb575b505b0192909192611541565b5f6116d591611cde565b5f6116bf565b949291906116eb6116f29161262b565b9383612029565b90926117096117036060830161263f565b976126a0565b94833b1561047957611755975f96608088946001600160801b036040519c8d9a8b998a9863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e18565b94166044860152013560648401526001600160e01b031916608483015203925af1918215610bda5760019261178b575b506116c1565b5f61179591611cde565b5f611785565b509d97949892969a90959d9c919c9b939b604082019160018060a01b036117c18461262b565b166118b1575b602081013591863b15610479575f80976024604051809a8193638ea59e1d60e01b83528860048401525af1958615610bda57600197611892976118a1575b50611824606061181d6118178661262b565b9761262b565b940161263f565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b16606884015260788301526098820152609881526105f560b882611cde565b960198949990999691966112d5565b5f6118ab91611cde565b5f611805565b6118ba8361262b565b863b1561047957604051630959112b60e11b81526001600160a01b0390911660048201525f81602481838b5af18015610bda576118f8575b506117c7565b5f61190291611cde565b5f6118f2565b6119289060203d811161192d575b6119208183611cde565b810190612653565b6113a2565b503d611916565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b919050611a0893929850600194959996997fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051858c01358152a16020815191012060405191602080840194808c013586528b010135604084015260608301526080820152608081526105f560a082611cde565b94019193949094611267565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b8486611abb926020815191012061205b565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610479576040366003190112610479576024356004358115801590611c2d575b15611be85760095f8051602061281d833981519152540190805f528160205260ff60405f205416600381101561071f57611b8a577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611b10565b34610479575f366003190112610479576020610d1b6001600160801b0360065f8051602061281d83398151915254015460401c1690565b34610479575f36600319011261047957602090600a5f8051602061281d8339815191525401548152f35b9181601f84011215610479578235916001600160401b038311610479576020808501948460051b01011161047957565b600435906001600160a01b038216820361047957565b90601f801991011681019081106001600160401b03821117611cff57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611cff5760405191611d3c601f8201601f191660200184611cde565b829481845281830111610479578281602093845f960137010152565b9181601f84011215610479578235916001600160401b038311610479576020838186019501011161047957565b9092916001600160401b038411611cff578360051b916020604051611dac82860182611cde565b809681520192810191821161047957915b818310611dc957505050565b82356001600160a01b038116810361047957815260209283019201611dbd565b602080611e16928195946040519682889351918291018585015e8201908382015203018085520183611cde565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611e686001600160801b0393606095859360018060a01b03168852608060208901526080880191611e18565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611ea4575050611e1692500383611cde565b84546001600160a01b0316835260019485019487945060209093019201611e8f565b5f8051602061281d83398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361040f5790565b3580151581036104795790565b5f19811461040f5760010190565b5f8051602061281d83398151915254600560088201549101549081810291818304149015171561040f5761270f810180911161040f57612710900490565b6001600160a01b03168015611fbf575f805160206127fd83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b903590601e198136030182121561047957018035906001600160401b03821161047957602001918160051b3603831361047957565b919081101561151b5760051b8101359060be1981360301821215610479570190565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191813603831361047957565b905f8051602061281d8339815191525490612074611f23565b9260405190602082019081526020825261208f604083611cde565b6120cb603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611cde565b5190205f9260070191835b868510156121d45761210c6121036120fd6120f68860051b860186612029565b3691611d13565b856126e0565b9092919261271a565b6001600160a01b03165f9081526020859052604090205460ff16156121995761213490611f15565b9385851461214557600101936120d6565b505050509091505b1061215457565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b9495505050505061214d565b5f805160206127fd833981519152546001600160a01b0316330361220057565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161040f57565b9291925f8051602061281d8339815191525491815f526009830160205260ff60405f205416600381101561071f5760020361244b57612270611ec6565b600a6001600160801b03821602956001600160801b03871696870361040f5761229c876122a193612213565b612213565b60038401546040516323b872dd60e01b81523260048201523060248201526001600160801b03929092166044830152602090829060649082905f906001600160a01b03165af1908115610bda575f9161242c575b50156123e7576e5af43d82803e903d91602b57fd5bf36002840154916040516020810191858352604082015260408152612330606082611cde565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b0383169081156123d8577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123cb8154611f15565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612445915060203d60201161192d576119208183611cde565b5f6122f5565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f8051602061281d833981519152549060088201908154612597579091600701905f5b815181101561250957600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016124ca565b5080519291506001600160401b038311611cff57680100000000000000008311611cff578154838355808410612571575b50602001905f5260205f205f5b8381106125545750505050565b82516001600160a01b031681830155602090920191600101612547565b825f528360205f2091820191015b81811061258c575061253a565b5f815560010161257f565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161040f57805b612601575b505f9150565b804083810361261257506001925050565b1561262657801561040f575f1901806125f6565b6125fb565b356001600160a01b03811681036104795790565b356001600160801b03811681036104795790565b90816020910312610479575180151581036104795790565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191606082023603831361047957565b356001600160e01b0319811681036104795790565b60ff5f8051602061283d8339815191525460401c16156126d157565b631afcd79f60e31b5f5260045ffd5b8151919060418303612710576127099250602082015190606060408401519301515f1a9061277a565b9192909190565b50505f9160029190565b600481101561071f578061272c575050565b600181036127435763f645eedf60e01b5f5260045ffd5b6002810361275e575063fce698f760e01b5f5260045260245ffd5b6003146127685750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116127f1579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610bda575f516001600160a01b038116156127e757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205cfe546dd98158b5d741a33222120d177e38b73a92f01f2eb8b1e9398bf5970c64736f6c634300081a0033","sourceMap":"781:17727:159:-:0;;;;;;;8837:64:26;781:17727:159;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;781:17727:159;;7985:34:26;7981:146;;-1:-1:-1;781:17727:159;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;781:17727:159;-1:-1:-1;;;;;781:17727:159;;;8837:64:26;781:17727:159;;;8087:29:26;;781:17727:159;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;781:17727:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611c6e575080630834fecc14611c375780631c149d8a14611aef57806326637f6d146111c357806328e24b3d146111995780632dacfb691461116c5780633d43b4181461111a578063444d9172146110e25780635686cad514611030578063666d124c14610f345780636c2eb35014610d2c5780636ef25c3a14610d01578063715018a614610c9a57806378ee5dec14610c625780638028861a14610be55780638074b45514610b2657806388f50cf014610aee5780638da5cb5b14610aba5780638febbd5914610a6d5780639067088e14610a2557806396708226146109fc57806396a2ddfa146109cf578063a6bbbe1c14610924578063c13911e8146108de578063ca1e781914610867578063d3fd636414610831578063e71731e414610744578063e97d3eb31461051f578063ed612f8c146104f2578063edc87225146104d0578063efd81abc146104a3578063f2fde38b1461047d5763f8453e7c14610186575f80fd5b346104795760a03660031901126104795761019f611cc8565b602435906001600160a01b038216820361047957604435916001600160a01b038316830361047957606435926001600160a01b0384168403610479576084356001600160401b03811161047957366023820112156104795761020b903690602481600401359101611d85565b905f8051602061283d8339815191525460ff8160401c1615946001600160401b03821680159081610471575b6001149081610467575b15908161045e575b5061044f5767ffffffffffffffff1982166001175f8051602061283d8339815191525561028c9186610423575b5061027f6126b5565b6102876126b5565b611f61565b604094855161029b8782611cde565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102cf6121e0565b5190205f19810190811161040f5786519060208201908152602082526102f58883611cde565b60ff19915190201690815f8051602061281d833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161040f57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b03199091161790556103b8906124a7565b6103be57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f8051602061283d83398151915254165f8051602061283d833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f8051602061283d833981519152555f610276565b63f92ee8a960e01b5f5260045ffd5b9050155f610249565b303b159150610241565b879150610237565b5f80fd5b34610479576020366003190112610479576104a1610499611cc8565b6102876121e0565b005b34610479575f36600319011261047957602060055f8051602061281d833981519152540154604051908152f35b34610479575f3660031901126104795760206104ea611f23565b604051908152f35b34610479575f36600319011261047957602060085f8051602061281d833981519152540154604051908152f35b34610479576040366003190112610479576004356001600160401b0381116104795736602382011215610479578060040135906001600160401b038211610479573660248360061b83010111610479576024356001600160401b0381116104795761058f83913690600401611c98565b90925f8051602061281d83398151915254906060925f9560098401945b86881015610733578760061b8401976105fe604460248b01359a01926105d184611f08565b60405160208101918d8352151560f81b6040820152602181526105f5604182611cde565b51902090611de9565b98805f528760205260ff60405f205416600381101561071f576001036106ca57610629600193611f08565b15610687577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600a8a016106768154611f15565b9055604051908152a25b01966105ac565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a2610680565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104a193506020815191012061205b565b34610479576020366003190112610479576004356001600160401b03811161047957610774903690600401611c98565b61077c6121e0565b5f8051602061281d8339815191525460078101906008015f5b81548110156107cc575f82815260208082208301546001600160a01b0316825284905260409020805460ff19169055600101610795565b5080545f8255915081610813575b6107ed6107e8368587611d85565b6124a7565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107da575f815560010161081e565b34610479575f3660031901126104795760206001600160401b0360065f8051602061281d83398151915254015416604051908152f35b34610479575f3660031901126104795761089160085f8051602061281d8339815191525401611e75565b6040518091602082016020835281518091526020604084019201905f5b8181106108bc575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108ae565b346104795760203660031901126104795760095f8051602061281d83398151915254016004355f5260205260ff60405f205416604051600382101561071f576020918152f35b34610479576020366003190112610479576004356001600160801b03811690818103610479577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916109776121e0565b5f8051602061281d83398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610479575f366003190112610479576020600c5f8051602061281d833981519152540154604051908152f35b34610479575f3660031901126104795760205f8051602061281d83398151915254604051908152f35b3461047957602036600319011261047957610a3e611cc8565b600b5f8051602061281d83398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461047957602036600319011261047957610a86611cc8565b60075f8051602061281d83398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610479575f366003190112610479575f805160206127fd833981519152546040516001600160a01b039091168152602090f35b34610479575f366003190112610479575f8051602061281d83398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610479576044356001600160401b03811161047957610b51903690600401611d58565b90606435916001600160801b038316830361047957610b7583602435600435612233565b6001600160a01b0390911692909190833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b038183855af1918215610bda57602092610bca575b50604051908152f35b5f610bd491611cde565b82610bc1565b6040513d5f823e3d90fd5b34610479576020366003190112610479576004356001600160401b0381168091036104795760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c366121e0565b5f8051602061281d83398151915254600601805467ffffffffffffffff191682179055604051908152a1005b34610479575f366003190112610479575f8051602061281d83398151915254600201546040516001600160a01b039091168152602090f35b34610479575f36600319011261047957610cb26121e0565b5f805160206127fd83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610479575f366003190112610479576020610d1b611ec6565b6001600160801b0360405191168152f35b34610479575f36600319011261047957610d446121e0565b5f8051602061283d8339815191525460ff8160401c168015610f20575b61044f5768ffffffffffffffffff191668010000000000000002175f8051602061283d833981519152555f8051602061281d833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dc790600801611e75565b906040918251610dd78482611cde565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e0b6121e0565b5190205f19810190811161040f578351906020820190815260208252610e318583611cde565b60ff19915190201694855f8051602061281d833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161040f574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610ef3906124a7565b60ff60401b195f8051602061283d83398151915254165f8051602061283d833981519152555160028152a1005b5060026001600160401b0382161015610d61565b60a036600319011261047957610f48611cc8565b6044356024356064356001600160401b03811161047957610f6d903690600401611d58565b90608435946001600160801b038616860361047957610f8d868686612233565b949060018060a01b0316956040519060208201928352604082015260408152610fb7606082611cde565b519020853b1561047957604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610bda57611020575b50833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b5f61102a91611cde565b85610ff7565b34610479576020366003190112610479576004356001600160401b038111610479573660238201121561047957611071903690602481600401359101611d13565b6110796121e0565b602081519101205f19810190811161040f576040519060208201908152602082526110a5604083611cde565b9051902060ff19165f8051602061281d833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610479575f366003190112610479575f8051602061281d83398151915254600101546040516001600160a01b039091168152602090f35b3461047957602036600319011261047957611133611cc8565b61113b6121e0565b5f8051602061281d8339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610479575f36600319011261047957602060045f8051602061281d833981519152540154604051908152f35b34610479575f3660031901126104795760205f8051602061281d8339815191525454604051908152f35b34610479576040366003190112610479576004356001600160401b038111610479576111f3903690600401611c98565b906024356001600160401b03811161047957611213903690600401611c98565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009291925c611ae057919260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9060605b81831015611aa9578260051b84013590607e19853603018212156104795760045f8051602061281d83398151915254019384546020848801013503611a655760408387010135946112b7866125e8565b15611a1457838799949899969596013590556060935f978581890101905b6112e182828b01611fd2565b90508a1015611991576113008a6112fa84848d01611fd2565b90612007565b975f8051602061281d833981519152546113198a61262b565b6001600160a01b03165f908152600b820160205260409020541561193457600301546001600160801b03906020906001600160a01b031660448c5f61136960606113628461262b565b930161263f565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610bda57611908575b506001600160a01b036113b48a61262b565b169b5f9160605b6113c860808d018d61266b565b905084101561152f576113de60808d018d61266b565b859195101561151b578f916114896020918261140081606087028b010161262b565b6114116040606088028c010161263f565b6040519083820192606089028d013584526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152611457606482611cde565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611cde565b9461149b60206060840283010161262b565b6114ac60406060850284010161263f565b93803b15610479575f92836064926001600160801b0360405198899687956314503e5160e01b875260608b020135600487015260018060a01b031660248601521660448401525af1918215610bda5760019261150b575b5001926113bb565b5f61151591611cde565b5f611503565b634e487b7160e01b5f52603260045260245ffd5b9891979d9b9394959692509b989b60605f5b61154e60a08e018e611fd2565b905081101561179b5790818e9493928e60a0810161156b91611fd2565b6115759291612007565b60208101956115838761262b565b9660408301946115938685612029565b9099906115a26060870161263f565b9a60a087019b6115b18d6126a0565b8360405194859460208601978c3589526001600160601b03199060601b16604087015260548601378301916001600160801b03199060801b1660548301526080890135606483015263ffffffff60e01b1660848201520360540160148101825260340161161e9082611cde565b51902061162a91611de9565b9760808401356116db57506116416116489161262b565b9483612029565b9190946116576060850161263f565b823b15610479575f9485916001600160801b036116a56040519a8b988997889663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e18565b9116606483015203925af1918215610bda576001926116cb575b505b0192909192611541565b5f6116d591611cde565b5f6116bf565b949291906116eb6116f29161262b565b9383612029565b90926117096117036060830161263f565b976126a0565b94833b1561047957611755975f96608088946001600160801b036040519c8d9a8b998a9863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e18565b94166044860152013560648401526001600160e01b031916608483015203925af1918215610bda5760019261178b575b506116c1565b5f61179591611cde565b5f611785565b509d97949892969a90959d9c919c9b939b604082019160018060a01b036117c18461262b565b166118b1575b602081013591863b15610479575f80976024604051809a8193638ea59e1d60e01b83528860048401525af1958615610bda57600197611892976118a1575b50611824606061181d6118178661262b565b9761262b565b940161263f565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b16606884015260788301526098820152609881526105f560b882611cde565b960198949990999691966112d5565b5f6118ab91611cde565b5f611805565b6118ba8361262b565b863b1561047957604051630959112b60e11b81526001600160a01b0390911660048201525f81602481838b5af18015610bda576118f8575b506117c7565b5f61190291611cde565b5f6118f2565b6119289060203d811161192d575b6119208183611cde565b810190612653565b6113a2565b503d611916565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b919050611a0893929850600194959996997fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051858c01358152a16020815191012060405191602080840194808c013586528b010135604084015260608301526080820152608081526105f560a082611cde565b94019193949094611267565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b8486611abb926020815191012061205b565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610479576040366003190112610479576024356004358115801590611c2d575b15611be85760095f8051602061281d833981519152540190805f528160205260ff60405f205416600381101561071f57611b8a577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611b10565b34610479575f366003190112610479576020610d1b6001600160801b0360065f8051602061281d83398151915254015460401c1690565b34610479575f36600319011261047957602090600a5f8051602061281d8339815191525401548152f35b9181601f84011215610479578235916001600160401b038311610479576020808501948460051b01011161047957565b600435906001600160a01b038216820361047957565b90601f801991011681019081106001600160401b03821117611cff57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611cff5760405191611d3c601f8201601f191660200184611cde565b829481845281830111610479578281602093845f960137010152565b9181601f84011215610479578235916001600160401b038311610479576020838186019501011161047957565b9092916001600160401b038411611cff578360051b916020604051611dac82860182611cde565b809681520192810191821161047957915b818310611dc957505050565b82356001600160a01b038116810361047957815260209283019201611dbd565b602080611e16928195946040519682889351918291018585015e8201908382015203018085520183611cde565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611e686001600160801b0393606095859360018060a01b03168852608060208901526080880191611e18565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611ea4575050611e1692500383611cde565b84546001600160a01b0316835260019485019487945060209093019201611e8f565b5f8051602061281d83398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361040f5790565b3580151581036104795790565b5f19811461040f5760010190565b5f8051602061281d83398151915254600560088201549101549081810291818304149015171561040f5761270f810180911161040f57612710900490565b6001600160a01b03168015611fbf575f805160206127fd83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b903590601e198136030182121561047957018035906001600160401b03821161047957602001918160051b3603831361047957565b919081101561151b5760051b8101359060be1981360301821215610479570190565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191813603831361047957565b905f8051602061281d8339815191525490612074611f23565b9260405190602082019081526020825261208f604083611cde565b6120cb603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611cde565b5190205f9260070191835b868510156121d45761210c6121036120fd6120f68860051b860186612029565b3691611d13565b856126e0565b9092919261271a565b6001600160a01b03165f9081526020859052604090205460ff16156121995761213490611f15565b9385851461214557600101936120d6565b505050509091505b1061215457565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b9495505050505061214d565b5f805160206127fd833981519152546001600160a01b0316330361220057565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161040f57565b9291925f8051602061281d8339815191525491815f526009830160205260ff60405f205416600381101561071f5760020361244b57612270611ec6565b600a6001600160801b03821602956001600160801b03871696870361040f5761229c876122a193612213565b612213565b60038401546040516323b872dd60e01b81523260048201523060248201526001600160801b03929092166044830152602090829060649082905f906001600160a01b03165af1908115610bda575f9161242c575b50156123e7576e5af43d82803e903d91602b57fd5bf36002840154916040516020810191858352604082015260408152612330606082611cde565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b0383169081156123d8577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123cb8154611f15565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612445915060203d60201161192d576119208183611cde565b5f6122f5565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f8051602061281d833981519152549060088201908154612597579091600701905f5b815181101561250957600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016124ca565b5080519291506001600160401b038311611cff57680100000000000000008311611cff578154838355808410612571575b50602001905f5260205f205f5b8381106125545750505050565b82516001600160a01b031681830155602090920191600101612547565b825f528360205f2091820191015b81811061258c575061253a565b5f815560010161257f565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161040f57805b612601575b505f9150565b804083810361261257506001925050565b1561262657801561040f575f1901806125f6565b6125fb565b356001600160a01b03811681036104795790565b356001600160801b03811681036104795790565b90816020910312610479575180151581036104795790565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191606082023603831361047957565b356001600160e01b0319811681036104795790565b60ff5f8051602061283d8339815191525460401c16156126d157565b631afcd79f60e31b5f5260045ffd5b8151919060418303612710576127099250602082015190606060408401519301515f1a9061277a565b9192909190565b50505f9160029190565b600481101561071f578061272c575050565b600181036127435763f645eedf60e01b5f5260045ffd5b6002810361275e575063fce698f760e01b5f5260045260245ffd5b6003146127685750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116127f1579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610bda575f516001600160a01b038116156127e757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205cfe546dd98158b5d741a33222120d177e38b73a92f01f2eb8b1e9398bf5970c64736f6c634300081a0033","sourceMap":"781:17727:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;781:17727:159;;;;;;4301:16:26;781:17727:159;-1:-1:-1;;;;;781:17727:159;;4726:16:26;;:34;;;;781:17727:159;4805:1:26;4790:16;:50;;;;781:17727:159;4855:13:26;:30;;;;781:17727:159;4851:91:26;;;-1:-1:-1;;781:17727:159;;4805:1:26;781:17727:159;-1:-1:-1;;;;;;;;;;;781:17727:159;6961:1:26;;781:17727:159;4979:67:26;;781:17727:159;6893:76:26;;;:::i;:::-;;;:::i;:::-;6961:1;:::i;:::-;781:17727:159;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;781:17727:159;2944:27;;-1:-1:-1;;781:17727:159;;;;;;;;;2925:52;781:17727;2925:52;;781:17727;;;;2925:52;;;;;;:::i;:::-;781:17727;;;;2915:63;;:89;1072:66;;-1:-1:-1;;;;;;;;;;;1072:66:159;3084:20;781:17727;3084:20;;781:17727;;1644:12;781:17727;1644:12;;781:17727;;;;1634:27;;1072:66;;4805:1:26;1671:13:159;;781:17727;;-1:-1:-1;;;;;;781:17727:159;;;-1:-1:-1;;;;;781:17727:159;;;;;;;1704:18;;;781:17727;;;;;;;;;;;;;;1747:18;;;781:17727;;;;;;;;;;;;;1826:4;1790:33;;;1072:66;1868:17;;;;;781:17727;;;-1:-1:-1;;;;;;781:17727:159;;;;;;1962:15;;;:::i;:::-;5066:101:26;;781:17727:159;5066:101:26;781:17727:159;5142:14:26;781:17727:159;-1:-1:-1;;;781:17727:159;-1:-1:-1;;;;;;;;;;;781:17727:159;;-1:-1:-1;;;;;;;;;;;781:17727:159;;4805:1:26;781:17727:159;;5142:14:26;781:17727:159;;;;;;;;;;;;;4979:67:26;-1:-1:-1;;781:17727:159;;;-1:-1:-1;;;;;;;;;;;781:17727:159;4979:67:26;;;4851:91;6498:23;;;781:17727:159;4908:23:26;781:17727:159;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;781:17727:159;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;2357:1:25;781:17727:159;;:::i;:::-;2303:62:25;;:::i;2357:1::-;781:17727:159;;;;;;;-1:-1:-1;;781:17727:159;;;;;4918:33;-1:-1:-1;;;;;;;;;;;781:17727:159;4918:33;781:17727;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;5296:21;-1:-1:-1;;;;;;;;;;;781:17727:159;5296:21;781:17727;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;781:17727:159;8503:34;781:17727;8553:13;781:17727;8928:12;;;;8548:824;8601:3;8568:31;;;;;;781:17727;;;;;;8802:55;17215:20;781:17727;;;;17215:20;;;;;;:::i;:::-;781:17727;;;17179:57;;781:17727;;;;;;;;;;;;;17179:57;;;;;;:::i;:::-;781:17727;17169:68;;8802:55;;:::i;:::-;781:17727;;;;;;;;;;;;;;;;;;;;8928:53;781:17727;;9044:20;781:17727;9044:20;;:::i;:::-;;;;9196:30;781:17727;;;;;;;;;;;;9107:19;781:17727;;;;;;;;9144:26;;;:28;781:17727;;9144:28;:::i;:::-;1072:66;;781:17727;;;;;9196:30;9040:322;781:17727;8553:13;;;9040:322;9316:31;781:17727;;;;;;;;;;;;;;;;;;;;;;;;9316:31;9040:322;;781:17727;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;;;8568:31;9436:10;8568:31;;781:17727;;;;;9402:32;9436:10;:::i;781:17727::-;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17727:159;17746:17;;;;17632:21;;781:17727;17662:3;781:17727;;17628:32;;;;;781:17727;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;17613:13;;17628:32;-1:-1:-1;781:17727:159;;;;;;-1:-1:-1;781:17727:159;;;17608:177;5857:38;781:17727;;;;;:::i;:::-;5857:38;:::i;:::-;5911:22;781:17727;5911:22;;781:17727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;-1:-1:-1;;;;;6110:17:159;-1:-1:-1;;;;;;;;;;;781:17727:159;6110:17;781:17727;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;5640:21;-1:-1:-1;;;;;;;;;;;781:17727:159;5640:21;781:17727;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;4382:12;-1:-1:-1;;;;;;;;;;;781:17727:159;4382:12;781:17727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;6689:38;2303:62:25;781:17727:159;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17727:159;6634:21;;781:17727;;-1:-1:-1;;781:17727:159;;;;;;;;;;;;;;6689:38;781:17727;;;;;;;-1:-1:-1;;781:17727:159;;;;;4535:20;-1:-1:-1;;;;;;;;;;;781:17727:159;4535:20;781:17727;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;:::i;:::-;4703:15;-1:-1:-1;;;;;;;;;;;781:17727:159;4703:15;:24;781:17727;;;;;;-1:-1:-1;781:17727:159;;;;;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;:::i;:::-;5473:17;-1:-1:-1;;;;;;;;;;;781:17727:159;5473:17;:28;781:17727;;;;;;-1:-1:-1;781:17727:159;;;;;;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;3567:18;;781:17727;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;7561:50;781:17727;;;;;7561:50;:::i;:::-;-1:-1:-1;;;;;781:17727:159;;;;;;;7622:75;;;;;;781:17727;;;;;;;;;;;;7622:75;;7651:9;781:17727;7622:75;;;:::i;:::-;;;;;;;;;;;;781:17727;7622:75;;;781:17727;;;;;;;;7622:75;781:17727;7622:75;;;:::i;:::-;;;;;781:17727;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;6307:30;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17727:159;6260:17;;781:17727;;-1:-1:-1;;781:17727:159;;;;;;;;;;6307:30;781:17727;;;;;;;-1:-1:-1;;781:17727:159;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;3716:18;;781:17727;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17727:159;;-1:-1:-1;;;;;;781:17727:159;;;;;;;-1:-1:-1;;;;;781:17727:159;3975:40:25;781:17727:159;;3975:40:25;781:17727:159;;;;;;;-1:-1:-1;;781:17727:159;;;;;;;:::i;:::-;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17727:159;;;;;;6431:44:26;;;;781:17727:159;6427:105:26;;-1:-1:-1;;781:17727:159;;;-1:-1:-1;;;;;;;;;;;781:17727:159;-1:-1:-1;;;;;;;;;;;781:17727:159;;2129:16;;781:17727;2046:1;2178:21;;781:17727;2232:21;;;781:17727;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;2298:24;;781:17727;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;781:17727:159;2944:27;;-1:-1:-1;;781:17727:159;;;;;;;;;2925:52;781:17727;2925:52;;781:17727;;;;2925:52;;;;;;:::i;:::-;781:17727;;;;2915:63;;:89;1072:66;;-1:-1:-1;;;;;;;;;;;1072:66:159;3084:20;781:17727;3084:20;;781:17727;;2469:12;781:17727;2469:12;781:17727;;;;2459:27;1072:66;;6593:4:26;2496:13:159;;781:17727;;-1:-1:-1;;;;;;781:17727:159;;;-1:-1:-1;;;;;781:17727:159;;;;;;;2046:1;2529:18;;781:17727;;;;;;;;;;;;;;2232:21;2572:18;;;781:17727;;;;;;;;;;;;;;;;6656:20:26;;781:17727:159;;-1:-1:-1;2630:15:159;;;:::i;:::-;-1:-1:-1;;;781:17727:159;-1:-1:-1;;;;;;;;;;;781:17727:159;;-1:-1:-1;;;;;;;;;;;781:17727:159;;2046:1;781:17727;;6656:20:26;781:17727:159;6431:44:26;781:17727:159;2046:1;-1:-1:-1;;;;;781:17727:159;;6450:25:26;;6431:44;;781:17727:159;;;-1:-1:-1;;781:17727:159;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;8008:50;;;;;:::i;:::-;781:17727;;;;;;;;;;;8183:30;781:17727;8183:30;;781:17727;;;;;;;;8183:30;;;781:17727;8183:30;;:::i;:::-;781:17727;8173:41;;8121:94;;;;;781:17727;;-1:-1:-1;;;8121:94:159;;-1:-1:-1;;;;;781:17727:159;;;;8121:94;;781:17727;;;;;-1:-1:-1;781:17727:159;;;-1:-1:-1;8121:94:159;;;;;;;;;781:17727;8226:73;;;;;;;781:17727;;;;;;;;;;;;8226:73;;8253:9;781:17727;8226:73;;;:::i;8121:94::-;781:17727;8121:94;;;:::i;:::-;;;;781:17727;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;781:17727:159;;;;;2944:27;781:17727;;;;;;;;;;;2925:52;781:17727;2925:52;;781:17727;;;;2925:52;;;781:17727;2925:52;;:::i;:::-;781:17727;;2915:63;;-1:-1:-1;;2915:89:159;-1:-1:-1;;;;;;;;;;;1072:66:159;3084:20;781:17727;;3084:20;781:17727;;;;;;;-1:-1:-1;;781:17727:159;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;;3860:13;781:17727;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17727:159;3999:13;;781:17727;;-1:-1:-1;;;;;;781:17727:159;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;3406:30;781:17727;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;;;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;:::i;:::-;516:66:62;7368:53:64;;;;1292:93:62;;7628:52:64;;1503:4:62;516:66;7628:52:64;781:17727:159;;;9713:3;9679:32;;;;;;781:17727;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;12083:30;781:17727;;;;;;;12117:34;781:17727;12083:68;781:17727;;;;;;12234:29;781:17727;12215:49;;;;:::i;:::-;781:17727;;;;;;;;;;;;;;1072:66;;781:17727;12559:13;781:17727;;;;;;12578:27;12554:320;12614:3;12578:27;781:17727;;;;12578:27;:::i;:::-;12574:38;;;;;;;12676:30;781:17727;12676:27;781:17727;;;;12676:27;:::i;:::-;:30;;:::i;:::-;781:17727;-1:-1:-1;;;;;;;;;;;781:17727:159;13686:23;;;:::i;:::-;-1:-1:-1;;;;;781:17727:159;;;;;13670:15;;;781:17727;;;;;;13670:45;781:17727;;13823:18;;781:17727;-1:-1:-1;;;;;781:17727:159;;;-1:-1:-1;;;;;781:17727:159;;13878:23;781:17727;13903:30;781:17727;13878:23;;;:::i;:::-;13903:30;;;:::i;:::-;781:17727;;-1:-1:-1;;;13852:82:159;;-1:-1:-1;;;;;781:17727:159;;;;13852:82;;781:17727;;;;;;;;;;;;;;-1:-1:-1;13852:82:159;;;;;;;;12614:3;-1:-1:-1;;;;;;13975:23:159;;;:::i;:::-;781:17727;;;;;14110:3;14074:27;;;;;;:::i;:::-;14070:38;;;;;;;14162:27;14074;;;14162;;:::i;:::-;781:17727;;;;;;;;;;;;;14313:22;781:17727;;;;;;14313:22;;:::i;:::-;14337:16;781:17727;;;;;;14337:16;;:::i;:::-;781:17727;;14274:80;;;;781:17727;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;14074:27;781:17727;;;;;;;14274:80;;;;;;:::i;:::-;781:17727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14274:80;;781:17727;;;;;;:::i;:::-;;14430:22;781:17727;;;;;;14313:22;14430;:::i;:::-;14454:16;781:17727;;;;;;14337:16;14454;:::i;:::-;14383:88;;;;;;781:17727;;;14274:80;781:17727;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;14383:88;;781:17727;;;;;;14383:88;;781:17727;;;;;;;;;;;;;;;;14383:88;;;;;;;1503:4:62;14383:88:159;;;14110:3;;781:17727;14055:13;;;14383:88;781:17727;14383:88;;;:::i;:::-;;;;781:17727;;;;;;;;;;;;14070:38;;;;;;;;;;;;;;;781:17727;;14587:3;14554:24;;;;;;:::i;:::-;14550:35;;;;;;;14554:24;;;;;;;;;;14649;;;:::i;:::-;:27;;;;:::i;:::-;781:17727;16808:27;;;;;;:::i;:::-;16853:23;781:17727;16853:23;;;;;;;:::i;:::-;16894:21;;;;781:17727;16894:21;;;:::i;:::-;16982:33;14554:24;16982:33;;;;;;:::i;:::-;781:17727;;;16738:291;;;781:17727;16738:291;;781:17727;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;14074:27;781:17727;;;;;;14074:27;16933:28;;781:17727;14274:80;781:17727;;;;;;;;;;;16738:291;781:17727;16738:291;;;;;;781:17727;16738:291;;;;;:::i;:::-;781:17727;16715:324;;14708:67;;;:::i;:::-;16933:28;14074:27;16933:28;;781:17727;14074:27;;14915;;14944:23;14915:27;;:::i;:::-;14944:23;;;:::i;:::-;16894:21;;;14969;781:17727;16894:21;;14969;:::i;:::-;14850:158;;;;;781:17727;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;14850:158;;781:17727;;14850:158;;781:17727;;;;;;;;;;;14074:27;781:17727;;;;;;;;;:::i;:::-;;;14274:80;781:17727;;;14850:158;;;;;;;;;1503:4:62;14850:158:159;;;14790:556;;;781:17727;14535:13;;;;;;14850:158;781:17727;14850:158;;;:::i;:::-;;;;14790:556;15090:27;;;;;15139:23;15090:27;;:::i;:::-;15139:23;;;:::i;:::-;16894:21;;15280:33;15184:21;781:17727;16894:21;;15184;:::i;:::-;15280:33;;:::i;:::-;15047:284;;;;;;781:17727;;;;14074:27;781:17727;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;15047:284;;781:17727;;;;;;;15047:284;;781:17727;14554:24;781:17727;;;;;;;;;:::i;:::-;;;;;;;16933:28;781:17727;14274:80;781:17727;;;-1:-1:-1;;;;;;781:17727:159;;;;;15047:284;;;;;;;;;1503:4:62;15047:284:159;;;14790:556;;;;15047:284;781:17727;15047:284;;;:::i;:::-;;;;14550:35;;;;;;;;;;;;;;;;;;781:17727;15370:25;;781:17727;;;;;;15370:25;;;:::i;:::-;781:17727;15366:121;;14530:826;781:17727;15521:28;;781:17727;15497:53;;;;;;781:17727;;;;;;;;;;;;;15497:53;;;781:17727;15497:53;;781:17727;15497:53;;;;;;;1503:4:62;15497:53:159;12816:47;15497:53;;;14530:826;15602:23;15720:30;781:17727;15681:25;15602:23;;;:::i;:::-;15681:25;;:::i;:::-;13903:30;;15720;:::i;:::-;781:17727;;;;;;15764:27;781:17727;;;;;;15805:25;781:17727;;;16469:103;781:17727;16469:103;;781:17727;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;14074:27;781:17727;;;;;;;;;;;;;;;16469:103;;;;;;:::i;12816:47::-;12614:3;781:17727;12559:13;;;;;;;;;;15497:53;781:17727;15497:53;;;:::i;:::-;;;;15366:121;15450:25;;;:::i;:::-;15425:51;;;;;781:17727;;-1:-1:-1;;;15425:51:159;;-1:-1:-1;;;;;781:17727:159;;;;15425:51;;781:17727;-1:-1:-1;781:17727:159;;;-1:-1:-1;15425:51:159;;;;;;;;;15366:121;;;;15425:51;781:17727;15425:51;;;:::i;:::-;;;;13852:82;;;781:17727;13852:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;781:17727;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14274:80:159;781:17727;;;;;;12574:38;;;;9913:57;12574:38;;;;1503:4:62;12574:38:159;;;;;12889:41;781:17727;;;;;;;;;12889:41;781:17727;;;;;13112:28;781:17727;;16080:85;781:17727;16080:85;;;781:17727;;;;;;;;;12117:34;781:17727;;;;;;;;;14074:27;781:17727;;;14074:27;16080:85;;;14554:24;16080:85;;:::i;9913:57::-;9713:3;781:17727;9664:13;;;;;;;781:17727;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14274:80:159;781:17727;;;;;;;14274:80;781:17727;;;;;;;;;;;;;;;;;;;;;;;9679:32;;;10046:10;9679:32;781:17727;;;;;10011:33;10046:10;:::i;:::-;781:17727;516:66:62;7628:52:64;781:17727:159;1292:93:62;1344:30;;;781:17727:159;1344:30:62;781:17727:159;;1344:30:62;781:17727:159;;;;;;-1:-1:-1;;781:17727:159;;;;;;;;6983:15;;;;;:35;;781:17727;;;;7119:12;-1:-1:-1;;;;;;;;;;;781:17727:159;7119:12;781:17727;;;;;;;;;;;;;;;;;;;;;7292:43;781:17727;;;;;;;;;;;7247:29;781:17727;;;;;;;;;;;;;;;;;7292:43;781:17727;;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;;;;6983:35;7002:11;781:17727;7002:11;:16;;6983:35;;781:17727;;;;;;-1:-1:-1;;781:17727:159;;;;;;-1:-1:-1;;;;;6471:21:159;-1:-1:-1;;;;;;;;;;;781:17727:159;6471:21;781:17727;;;;6350:149;;781:17727;;;;;;-1:-1:-1;;781:17727:159;;;;;;4211:26;-1:-1:-1;;;;;;;;;;;781:17727:159;4211:26;781:17727;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;781:17727:159;;;;;;:::o;:::-;;;14274:80;;781:17727;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;:::o;:::-;;;;-1:-1:-1;781:17727:159;;;;;-1:-1:-1;781:17727:159;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;14274:80;781:17727;;-1:-1:-1;;781:17727:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;781:17727:159;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;781:17727:159;;;;;;;;-1:-1:-1;;781:17727:159;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;781:17727:159;;-1:-1:-1;781:17727:159;;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;-1:-1:-1;781:17727:159;;;;;;;;6740:113;-1:-1:-1;;;;;;;;;;;781:17727:159;6110:17;;781:17727;-1:-1:-1;;;;;781:17727:159;;;-1:-1:-1;;;;;781:17727:159;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;6740:113;:::o;781:17727::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;781:17727:159;;;;;;;:::o;4964:204::-;-1:-1:-1;;;;;;;;;;;781:17727:159;4918:33;5296:21;;;781:17727;4918:33;;781:17727;;;;;;;;;;;;;;;;5148:4;781:17727;;;;;;;5156:5;781:17727;;4964:204;:::o;3405:215:25:-;-1:-1:-1;;;;;781:17727:159;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;781:17727:159;;-1:-1:-1;;;;;;781:17727:159;;;;;;;-1:-1:-1;;;;;781:17727:159;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;781:17727:159;;3509:1:25;3534:31;781:17727:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;:::o;11063:844::-;;-1:-1:-1;;;;;;;;;;;781:17727:159;11231:21;;;:::i;:::-;781:17727;;;11331:26;;;;781:17727;;;11331:26;;;;781:17727;11331:26;;:::i;:::-;2858:45:68;781:17727:159;;;2858:45:68;;11331:26:159;2858:45:68;;781:17727:159;;;;;;11293:4;781:17727;;;;;;;;;;;;;;;-1:-1:-1;781:17727:159;;;;2858:45:68;;14274:80:159;;2858:45:68;;;;;;:::i;:::-;781:17727:159;2848:56:68;;-1:-1:-1;;11592:17:159;;;-1:-1:-1;11449:3:159;11426:21;;;;;;3915:8:66;3859:27;781:17727:159;;;;;;;;;:::i;:::-;;;;:::i;:::-;3859:27:66;;:::i;:::-;3915:8;;;;;:::i;:::-;-1:-1:-1;;;;;781:17727:159;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;;;11644:17;;;:::i;:::-;:30;;;;11640:82;;781:17727;;11411:13;;;11640:82;11698:5;;;;;;;11406:416;11840:28;781:17727;;11063:844::o;781:17727::-;;;-1:-1:-1;;;781:17727:159;;11331:26;781:17727;;;;;;;;;;;;;;;;;11588:224;781:17727;;-1:-1:-1;;;781:17727:159;;11331:26;781:17727;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;11426:21;;;;;;;;;;2658:162:25;-1:-1:-1;;;;;;;;;;;781:17727:159;-1:-1:-1;;;;;781:17727:159;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;781:17727:159;;-1:-1:-1;2763:40:25;781:17727:159;;-1:-1:-1;;;;;781:17727:159;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;:::o;10106:951::-;;;;-1:-1:-1;;;;;;;;;;;781:17727:159;;;-1:-1:-1;781:17727:159;10312:12;;;781:17727;;;;-1:-1:-1;781:17727:159;;;;;;;;;10336:19;10312:43;781:17727;;10440:9;;:::i;:::-;781:17727;-1:-1:-1;;;;;781:17727:159;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;10536:32;;:41;:32;;:::i;:::-;:41;:::i;:::-;781:17727;17379:18;;781:17727;;;-1:-1:-1;;;17372:73:159;;17412:9;17372:73;;;781:17727;17431:4;781:17727;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;17372:73;;781:17727;;-1:-1:-1;;;;;;;781:17727:159;17372:73;;;;;;;-1:-1:-1;17372:73:159;;;10106:951;781:17727;;;;3743:569:44;10336:19:159;10819:18;;781:17727;;;;;10849:30;;781:17727;;;;;;;;;10849:30;;;781:17727;10849:30;;:::i;:::-;781:17727;10839:41;;3743:569:44;;;;;;;;-1:-1:-1;3743:569:44;;;;;;;;781:17727:159;3743:569:44;;10312:12:159;-1:-1:-1;3743:569:44;781:17727:159;-1:-1:-1;;;;;781:17727:159;;;4325:22:44;;4321:85;;10973:31:159;10892:24;10935:20;781:17727;10892:24;781:17727;-1:-1:-1;781:17727:159;10892:15;;;781:17727;;;;-1:-1:-1;781:17727:159;1072:66;10935:20;:22;781:17727;;10935:22;:::i;:::-;1072:66;;781:17727;;;;;10973:31;11015:35;10106:951;:::o;4321:85:44:-;4370:25;;;-1:-1:-1;4370:25:44;17372:73:159;-1:-1:-1;4370:25:44;781:17727:159;;;-1:-1:-1;;;781:17727:159;;;17372:73;781:17727;;;;;;;;;;;;;17372:73;;781:17727;17372:73;;;;781:17727;17372:73;781:17727;17372:73;;;;;;;:::i;:::-;;;;781:17727;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;17836:442;-1:-1:-1;;;;;;;;;;;781:17727:159;17970:21;;;;781:17727;;;;;18059:13;;18175:17;;;-1:-1:-1;18103:3:159;781:17727;;18074:27;;;;;781:17727;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;-1:-1:-1;781:17727:159;;;;;;;;;;;;-1:-1:-1;;781:17727:159;;;;;;;;;18059:13;;18074:27;-1:-1:-1;781:17727:159;;;18074:27;-1:-1:-1;;;;;;781:17727:159;;;;;;;;;;;;;;;;;;;18054:167;781:17727;;;;-1:-1:-1;781:17727:159;;-1:-1:-1;781:17727:159;-1:-1:-1;781:17727:159;;;;;;17836:442;;;;:::o;781:17727::-;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;-1:-1:-1;781:17727:159;;;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;;;-1:-1:-1;781:17727:159;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17727:159;;;;;;;13163:338;;781:17727;;13260:12;781:17727;13260:12;781:17727;;;;13243:230;13278:5;;;13243:230;-1:-1:-1;781:17727:159;;-1:-1:-1;13163:338:159:o;13285:3::-;13318:12;;13348:11;;;;;-1:-1:-1;13275:1:159;;-1:-1:-1;;13379:11:159:o;13344:119::-;13415:8;13411:52;;781:17727;;;;-1:-1:-1;;781:17727:159;;13248:28;;13411:52;13443:5;;781:17727;;-1:-1:-1;;;;;781:17727:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;781:17727:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17727:159;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;781:17727:159;;;;;;;:::o;7084:141:26:-;781:17727:159;-1:-1:-1;;;;;;;;;;;781:17727:159;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;2129:766:66;781:17727:159;;;2129:766:66;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:66;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;7196:532::-;781:17727:159;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;781:17727:159;7378:38:66;;781:17727:159;;7439:23:66;;;7291:20;7439:23;781:17727:159;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;781:17727:159;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;781:17727:159;;;7291:20:66;7679:32;5140:1530;;;6199:66;6186:79;;6182:164;;781:17727:159;;;;;;-1:-1:-1;781:17727:159;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;781:17727:159;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o","linkReferences":{}},"methodIdentifiers":{"baseFee()":"6ef25c3a","baseWeight()":"d3fd6364","codeState(bytes32)":"c13911e8","commitBlocks((bytes32,bytes32,bytes32,(address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"26637f6d","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","createProgram(bytes32,bytes32,bytes,uint128)":"8074b455","createProgramWithDecoder(address,bytes32,bytes32,bytes,uint128)":"666d124c","genesisBlockHash()":"28e24b3d","getStorageSlot()":"96708226","initialize(address,address,address,address,address[])":"f8453e7c","lastBlockCommitmentHash()":"2dacfb69","mirror()":"444d9172","mirrorProxy()":"78ee5dec","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setBaseWeight(uint64)":"8028861a","setMirror(address)":"3d43b418","setStorageSlot(string)":"5686cad5","setValuePerWeight(uint128)":"a6bbbe1c","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","updateValidators(address[])":"e71731e4","validatedCodesCount()":"007a32e7","validatorExists(address)":"8febbd59","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","valuePerWeight()":"0834fecc","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"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\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"baseWeight\",\"type\":\"uint64\"}],\"name\":\"BaseWeightChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"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\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"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\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ValidatorsSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"ValuePerWeightChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum IRouter.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevCommitmentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predBlockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct IRouter.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 IRouter.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct IRouter.OutgoingMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.BlockCommitment[]\",\"name\":\"blockCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct IRouter.CodeCommitment[]\",\"name\":\"codeCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"decoderImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStorageSlot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_validatorsKeys\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirror\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"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\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_baseWeight\",\"type\":\"uint64\"}],\"name\":\"setBaseWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"namespace\",\"type\":\"string\"}],\"name\":\"setStorageSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"setValuePerWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"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\":\"validatorsAddressArray\",\"type\":\"address[]\"}],\"name\":\"updateValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"validatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"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\":\"valuePerWeight\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"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.\"}]},\"events\":{\"BaseWeightChanged(uint64)\":{\"details\":\"Emitted when the tx's base weight is changed. NOTE: It's event for USERS: it informs about new value of commission for each message sending. NOTE: It's event for NODES: it requires to update commission in programs execution parameters.\"},\"BlockCommitted(bytes32)\":{\"details\":\"Emitted when a new state transitions are applied. NOTE: It's event for USERS: it informs about new block outcome committed.\"},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"Emitted when a code, previously requested to be validated, gets validated. NOTE: It's event for USERS: it informs about validation results of previously requested code.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"Emitted when a new code validation request submitted. NOTE: It's event for NODES: it requires to download and validate code from blob.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"Emitted when a new program created. NOTE: It's event for USERS: it informs about new program creation and it's availability on Ethereum. NOTE: It's event for NODES: it requires to create associated gear program in local storage.\"},\"StorageSlotChanged()\":{\"details\":\"Emitted when the storage slot is changed. NOTE: It's event for USERS: it informs about router being wiped and all programs and codes deletion. NOTE: It's event for NODES: it requires to clean the local storage.\"},\"ValidatorsSetChanged()\":{\"details\":\"Emitted when the validators set is changed. NOTE: It's event for USERS: it informs about validators rotation. NOTE: It's event for NODES: it requires to update authorities that sign outcomes.\"},\"ValuePerWeightChanged(uint128)\":{\"details\":\"Emitted when the value per executable weight is changed. NOTE: It's event for USERS: it informs about new conversion rate between weight and it's WVara price. NOTE: It's event for NODES: it requires to update conversion rate in programs execution parameters.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"programCodeId(address)\":{\"details\":\"Returns bytes32(0) in case of inexistent program.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"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-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/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/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"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/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58\",\"dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601\",\"dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xb16e44a8917c8292c47779fdcb6a8fa23a394258370375d83774e324c159a8d2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://356609e9f3ed19904806ba235c5fd247171754eea0f479d826558a9a7908cf05\",\"dweb:/ipfs/QmXPnJzKpk6AhqXjd2cKgReTvnZULcn2tdH2RiU8avLP7P\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0xc381124067fb1c739e6d483bb7e6f41fcd1c3e5541c77664865511a7d4404005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7a3270fd3be39e2342990866436cdff925f93b98d2be4bf0145ec23e4e506fd4\",\"dweb:/ipfs/Qmcy8vdrxgHzuTLKv5ZrKfACfkvpNEHrzRvjH7kAzV7ZA4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[],"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":"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":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"baseWeight","type":"uint64","indexed":false}],"type":"event","name":"BaseWeightChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","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},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","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":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[],"type":"event","name":"ValidatorsSetChanged","anonymous":false},{"inputs":[{"internalType":"uint128","name":"valuePerWeight","type":"uint128","indexed":false}],"type":"event","name":"ValuePerWeightChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseWeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum IRouter.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct IRouter.BlockCommitment[]","name":"blockCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"bytes32","name":"prevCommitmentHash","type":"bytes32"},{"internalType":"bytes32","name":"predBlockHash","type":"bytes32"},{"internalType":"struct IRouter.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct IRouter.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 IRouter.OutgoingMessage[]","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 IRouter.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBlocks"},{"inputs":[{"internalType":"struct IRouter.CodeCommitment[]","name":"codeCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitCodes"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"decoderImplementation","type":"address"},{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgramWithDecoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStorageSlot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address[]","name":"_validatorsKeys","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirror","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"program","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"uint64","name":"_baseWeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setBaseWeight"},{"inputs":[{"internalType":"address","name":"_mirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"string","name":"namespace","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setStorageSlot"},{"inputs":[{"internalType":"uint128","name":"_valuePerWeight","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setValuePerWeight"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address[]","name":"validatorsAddressArray","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"validatorExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"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":"valuePerWeight","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"programCodeId(address)":{"details":"Returns bytes32(0) in case of inexistent program."},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/","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/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"cancun","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":"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/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9","urls":["bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58","dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373","urls":["bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601","dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xb16e44a8917c8292c47779fdcb6a8fa23a394258370375d83774e324c159a8d2","urls":["bzz-raw://356609e9f3ed19904806ba235c5fd247171754eea0f479d826558a9a7908cf05","dweb:/ipfs/QmXPnJzKpk6AhqXjd2cKgReTvnZULcn2tdH2RiU8avLP7P"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0xc381124067fb1c739e6d483bb7e6f41fcd1c3e5541c77664865511a7d4404005","urls":["bzz-raw://7a3270fd3be39e2342990866436cdff925f93b98d2be4bf0145ec23e4e506fd4","dweb:/ipfs/Qmcy8vdrxgHzuTLKv5ZrKfACfkvpNEHrzRvjH7kAzV7ZA4"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":76863,"exportedSymbols":{"Clones":[41840],"ECDSA":[45249],"IERC20":[43140],"IMirror":[73387],"IRouter":[73754],"IWrappedVara":[73765],"MessageHashUtils":[45550],"OwnableUpgradeable":[39387],"ReentrancyGuardTransient":[44045],"Router":[76862],"StorageSlot":[44581]},"nodeType":"SourceUnit","src":"39:18470:159","nodes":[{"id":75136,"nodeType":"PragmaDirective","src":"39:24:159","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":75138,"nodeType":"ImportDirective","src":"65:74:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":44582,"symbolAliases":[{"foreign":{"id":75137,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"73:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75140,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":75139,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75142,"nodeType":"ImportDirective","src":"242:64:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":41841,"symbolAliases":[{"foreign":{"id":75141,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"250:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75144,"nodeType":"ImportDirective","src":"307:75:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":45250,"symbolAliases":[{"foreign":{"id":75143,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45249,"src":"315:5:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75146,"nodeType":"ImportDirective","src":"383:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":45551,"symbolAliases":[{"foreign":{"id":75145,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"391:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75148,"nodeType":"ImportDirective","src":"481:100:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":44046,"symbolAliases":[{"foreign":{"id":75147,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44045,"src":"489:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75150,"nodeType":"ImportDirective","src":"582:38:159","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":73755,"symbolAliases":[{"foreign":{"id":75149,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73754,"src":"590:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75152,"nodeType":"ImportDirective","src":"621:38:159","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":73388,"symbolAliases":[{"foreign":{"id":75151,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"629:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75154,"nodeType":"ImportDirective","src":"660:48:159","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":73766,"symbolAliases":[{"foreign":{"id":75153,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73765,"src":"668:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75156,"nodeType":"ImportDirective","src":"709:70:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":76863,"sourceUnit":43141,"symbolAliases":[{"foreign":{"id":75155,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"717:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76862,"nodeType":"ContractDefinition","src":"781:17727:159","nodes":[{"id":75165,"nodeType":"UsingForDirective","src":"860:24:159","nodes":[],"global":false,"libraryName":{"id":75163,"name":"ECDSA","nameLocations":["866:5:159"],"nodeType":"IdentifierPath","referencedDeclaration":45249,"src":"866:5:159"},"typeName":{"id":75164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"876:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":75168,"nodeType":"UsingForDirective","src":"889:35:159","nodes":[],"global":false,"libraryName":{"id":75166,"name":"MessageHashUtils","nameLocations":["895:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":45550,"src":"895:16:159"},"typeName":{"id":75167,"name":"address","nodeType":"ElementaryTypeName","src":"916:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75171,"nodeType":"VariableDeclaration","src":"1032:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1057:12:159","scope":76862,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1032:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":75170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1072:66:159","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":75179,"nodeType":"FunctionDefinition","src":"1198:53:159","nodes":[],"body":{"id":75178,"nodeType":"Block","src":"1212:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75175,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1222:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75177,"nodeType":"ExpressionStatement","src":"1222:22:159"}]},"documentation":{"id":75172,"nodeType":"StructuredDocumentation","src":"1145:48:159","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75173,"nodeType":"ParameterList","parameters":[],"src":"1209:2:159"},"returnParameters":{"id":75174,"nodeType":"ParameterList","parameters":[],"src":"1212:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75261,"nodeType":"FunctionDefinition","src":"1257:728:159","nodes":[],"body":{"id":75260,"nodeType":"Block","src":"1459:526:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":75196,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"1484:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75195,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1469:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1469:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75198,"nodeType":"ExpressionStatement","src":"1469:28:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":75200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1523:25:159","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":75199,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"1508:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75202,"nodeType":"ExpressionStatement","src":"1508:41:159"},{"assignments":[75205],"declarations":[{"constant":false,"id":75205,"mutability":"mutable","name":"router","nameLocation":"1575:6:159","nodeType":"VariableDeclaration","scope":75260,"src":"1559:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75204,"nodeType":"UserDefinedTypeName","pathNode":{"id":75203,"name":"Storage","nameLocations":["1559:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"1559:7:159"},"referencedDeclaration":73470,"src":"1559:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75206,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"1584:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1584:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1559:38:159"},{"expression":{"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75209,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1608:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1615:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"1608:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75213,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1644:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1650:6:159","memberName":"number","nodeType":"MemberAccess","src":"1644:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1659:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1644:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75212,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"1634:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1608:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75219,"nodeType":"ExpressionStatement","src":"1608:53:159"},{"expression":{"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75220,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1671:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1678:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"1671:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75223,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75183,"src":"1687:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1671:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75225,"nodeType":"ExpressionStatement","src":"1671:23:159"},{"expression":{"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75226,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1704:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1711:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"1704:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75229,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75185,"src":"1725:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1704:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75231,"nodeType":"ExpressionStatement","src":"1704:33:159"},{"expression":{"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75232,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1747:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1754:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"1747:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75235,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75187,"src":"1768:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1747:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75237,"nodeType":"ExpressionStatement","src":"1747:33:159"},{"expression":{"id":75242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75238,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1790:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"1790:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36363636","id":75241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1826:4:159","typeDescriptions":{"typeIdentifier":"t_rational_6666_by_1","typeString":"int_const 6666"},"value":"6666"},"src":"1790:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75243,"nodeType":"ExpressionStatement","src":"1790:40:159"},{"expression":{"id":75248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75244,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1868:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1875:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"1868:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"325f3530305f3030305f303030","id":75247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1888:13:159","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"src":"1868:33:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75249,"nodeType":"ExpressionStatement","src":"1868:33:159"},{"expression":{"id":75254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75250,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75205,"src":"1911:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1918:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"1911:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":75253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1935:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1911:26:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75255,"nodeType":"ExpressionStatement","src":"1911:26:159"},{"expression":{"arguments":[{"id":75257,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75190,"src":"1962:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75256,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76848,"src":"1947:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1947:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75259,"nodeType":"ExpressionStatement","src":"1947:31:159"}]},"functionSelector":"f8453e7c","implemented":true,"kind":"function","modifiers":[{"id":75193,"kind":"modifierInvocation","modifierName":{"id":75192,"name":"initializer","nameLocations":["1447:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1447:11:159"},"nodeType":"ModifierInvocation","src":"1447:11:159"}],"name":"initialize","nameLocation":"1266:10:159","parameters":{"id":75191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75181,"mutability":"mutable","name":"initialOwner","nameLocation":"1294:12:159","nodeType":"VariableDeclaration","scope":75261,"src":"1286:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75180,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75183,"mutability":"mutable","name":"_mirror","nameLocation":"1324:7:159","nodeType":"VariableDeclaration","scope":75261,"src":"1316:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75182,"name":"address","nodeType":"ElementaryTypeName","src":"1316:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75185,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1349:12:159","nodeType":"VariableDeclaration","scope":75261,"src":"1341:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75184,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75187,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1379:12:159","nodeType":"VariableDeclaration","scope":75261,"src":"1371:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75186,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75190,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"1418:15:159","nodeType":"VariableDeclaration","scope":75261,"src":"1401:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75188,"name":"address","nodeType":"ElementaryTypeName","src":"1401:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75189,"nodeType":"ArrayTypeName","src":"1401:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1276:163:159"},"returnParameters":{"id":75194,"nodeType":"ParameterList","parameters":[],"src":"1459:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75342,"nodeType":"FunctionDefinition","src":"1991:662:159","nodes":[],"body":{"id":75341,"nodeType":"Block","src":"2049:604:159","nodes":[],"statements":[{"assignments":[75271],"declarations":[{"constant":false,"id":75271,"mutability":"mutable","name":"oldRouter","nameLocation":"2075:9:159","nodeType":"VariableDeclaration","scope":75341,"src":"2059:25:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75270,"nodeType":"UserDefinedTypeName","pathNode":{"id":75269,"name":"Storage","nameLocations":["2059:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"2059:7:159"},"referencedDeclaration":73470,"src":"2059:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75272,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"2087:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2087:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2059:41:159"},{"assignments":[75276],"declarations":[{"constant":false,"id":75276,"mutability":"mutable","name":"_mirror","nameLocation":"2119:7:159","nodeType":"VariableDeclaration","scope":75341,"src":"2111:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75275,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75279,"initialValue":{"expression":{"id":75277,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75271,"src":"2129:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2139:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2129:16:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2111:34:159"},{"assignments":[75281],"declarations":[{"constant":false,"id":75281,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"2163:12:159","nodeType":"VariableDeclaration","scope":75341,"src":"2155:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75280,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75284,"initialValue":{"expression":{"id":75282,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75271,"src":"2178:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2188:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2178:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2155:44:159"},{"assignments":[75286],"declarations":[{"constant":false,"id":75286,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2217:12:159","nodeType":"VariableDeclaration","scope":75341,"src":"2209:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75285,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75289,"initialValue":{"expression":{"id":75287,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75271,"src":"2232:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2242:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2232:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2209:44:159"},{"assignments":[75294],"declarations":[{"constant":false,"id":75294,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"2280:15:159","nodeType":"VariableDeclaration","scope":75341,"src":"2263:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75292,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75293,"nodeType":"ArrayTypeName","src":"2263:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":75297,"initialValue":{"expression":{"id":75295,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75271,"src":"2298:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2308:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"2298:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2263:59:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":75299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2348:25:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":75298,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"2333:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2333:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75301,"nodeType":"ExpressionStatement","src":"2333:41:159"},{"assignments":[75304],"declarations":[{"constant":false,"id":75304,"mutability":"mutable","name":"router","nameLocation":"2400:6:159","nodeType":"VariableDeclaration","scope":75341,"src":"2384:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75303,"nodeType":"UserDefinedTypeName","pathNode":{"id":75302,"name":"Storage","nameLocations":["2384:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"2384:7:159"},"referencedDeclaration":73470,"src":"2384:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75307,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75305,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"2409:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2384:38:159"},{"expression":{"id":75317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75308,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"2433:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2440:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"2433:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75312,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2469:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2475:6:159","memberName":"number","nodeType":"MemberAccess","src":"2469:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2484:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2469:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75311,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"2459:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2433:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75318,"nodeType":"ExpressionStatement","src":"2433:53:159"},{"expression":{"id":75323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75319,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"2496:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2503:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2496:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75322,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75276,"src":"2512:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2496:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75324,"nodeType":"ExpressionStatement","src":"2496:23:159"},{"expression":{"id":75329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75325,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"2529:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2536:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2529:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75328,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75281,"src":"2550:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2529:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75330,"nodeType":"ExpressionStatement","src":"2529:33:159"},{"expression":{"id":75335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75331,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"2572:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2579:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2572:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75334,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75286,"src":"2593:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2572:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75336,"nodeType":"ExpressionStatement","src":"2572:33:159"},{"expression":{"arguments":[{"id":75338,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"2630:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75337,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76848,"src":"2615:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2615:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75340,"nodeType":"ExpressionStatement","src":"2615:31:159"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75264,"kind":"modifierInvocation","modifierName":{"id":75263,"name":"onlyOwner","nameLocations":["2022:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2022:9:159"},"nodeType":"ModifierInvocation","src":"2022:9:159"},{"arguments":[{"hexValue":"32","id":75266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75267,"kind":"modifierInvocation","modifierName":{"id":75265,"name":"reinitializer","nameLocations":["2032:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"2032:13:159"},"nodeType":"ModifierInvocation","src":"2032:16:159"}],"name":"reinitialize","nameLocation":"2000:12:159","parameters":{"id":75262,"nodeType":"ParameterList","parameters":[],"src":"2012:2:159"},"returnParameters":{"id":75268,"nodeType":"ParameterList","parameters":[],"src":"2049:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75354,"nodeType":"FunctionDefinition","src":"2692:126:159","nodes":[],"body":{"id":75353,"nodeType":"Block","src":"2748:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":75349,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75171,"src":"2792:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75347,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"2765:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2777:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"2765:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2806:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"2765:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75346,"id":75352,"nodeType":"Return","src":"2758:53:159"}]},"baseFunctions":[73578],"functionSelector":"96708226","implemented":true,"kind":"function","modifiers":[],"name":"getStorageSlot","nameLocation":"2701:14:159","parameters":{"id":75343,"nodeType":"ParameterList","parameters":[],"src":"2715:2:159"},"returnParameters":{"id":75346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75354,"src":"2739:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2739:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2738:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75402,"nodeType":"FunctionDefinition","src":"2824:287:159","nodes":[],"body":{"id":75401,"nodeType":"Block","src":"2890:221:159","nodes":[],"statements":[{"assignments":[75362],"declarations":[{"constant":false,"id":75362,"mutability":"mutable","name":"slot","nameLocation":"2908:4:159","nodeType":"VariableDeclaration","scope":75401,"src":"2900:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2900:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75388,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":75371,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"2960:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":75370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2954:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75369,"name":"bytes","nodeType":"ElementaryTypeName","src":"2954:5:159","typeDescriptions":{}}},"id":75372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2954:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75368,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2944:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2944:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2936:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75366,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:159","typeDescriptions":{}}},"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2975:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2936:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:6:159","memberName":"encode","nodeType":"MemberAccess","src":"2925:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75363,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2915:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2915:63:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":75386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2981:23:159","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":75383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2998:4:159","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":75382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2990:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75381,"name":"uint256","nodeType":"ElementaryTypeName","src":"2990:7:159","typeDescriptions":{}}},"id":75384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2990:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2982:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":75379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2982:7:159","typeDescriptions":{}}},"id":75385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2915:89:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2900:104:159"},{"expression":{"id":75396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":75392,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75171,"src":"3042:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75389,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"3015:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3027:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"3015:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3056:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"3015:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75395,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75362,"src":"3064:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3015:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75397,"nodeType":"ExpressionStatement","src":"3015:53:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75398,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73563,"src":"3084:18:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3084:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75400,"nodeType":"EmitStatement","src":"3079:25:159"}]},"baseFunctions":[73583],"functionSelector":"5686cad5","implemented":true,"kind":"function","modifiers":[{"id":75359,"kind":"modifierInvocation","modifierName":{"id":75358,"name":"onlyOwner","nameLocations":["2880:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2880:9:159"},"nodeType":"ModifierInvocation","src":"2880:9:159"}],"name":"setStorageSlot","nameLocation":"2833:14:159","parameters":{"id":75357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75356,"mutability":"mutable","name":"namespace","nameLocation":"2862:9:159","nodeType":"VariableDeclaration","scope":75402,"src":"2848:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75355,"name":"string","nodeType":"ElementaryTypeName","src":"2848:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2847:25:159"},"returnParameters":{"id":75360,"nodeType":"ParameterList","parameters":[],"src":"2890:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75417,"nodeType":"FunctionDefinition","src":"3117:153:159","nodes":[],"body":{"id":75416,"nodeType":"Block","src":"3175:95:159","nodes":[],"statements":[{"assignments":[75409],"declarations":[{"constant":false,"id":75409,"mutability":"mutable","name":"router","nameLocation":"3201:6:159","nodeType":"VariableDeclaration","scope":75416,"src":"3185:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75408,"nodeType":"UserDefinedTypeName","pathNode":{"id":75407,"name":"Storage","nameLocations":["3185:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3185:7:159"},"referencedDeclaration":73470,"src":"3185:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75412,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75410,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"3210:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3210:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3185:38:159"},{"expression":{"expression":{"id":75413,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75409,"src":"3240:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3247:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"3240:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75406,"id":75415,"nodeType":"Return","src":"3233:30:159"}]},"baseFunctions":[73588],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3126:16:159","parameters":{"id":75403,"nodeType":"ParameterList","parameters":[],"src":"3142:2:159"},"returnParameters":{"id":75406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75417,"src":"3166:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3166:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3165:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75432,"nodeType":"FunctionDefinition","src":"3276:167:159","nodes":[],"body":{"id":75431,"nodeType":"Block","src":"3341:102:159","nodes":[],"statements":[{"assignments":[75424],"declarations":[{"constant":false,"id":75424,"mutability":"mutable","name":"router","nameLocation":"3367:6:159","nodeType":"VariableDeclaration","scope":75431,"src":"3351:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75423,"nodeType":"UserDefinedTypeName","pathNode":{"id":75422,"name":"Storage","nameLocations":["3351:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3351:7:159"},"referencedDeclaration":73470,"src":"3351:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75427,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75425,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"3376:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3376:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3351:38:159"},{"expression":{"expression":{"id":75428,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75424,"src":"3406:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3413:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"3406:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75421,"id":75430,"nodeType":"Return","src":"3399:37:159"}]},"baseFunctions":[73593],"functionSelector":"2dacfb69","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentHash","nameLocation":"3285:23:159","parameters":{"id":75418,"nodeType":"ParameterList","parameters":[],"src":"3308:2:159"},"returnParameters":{"id":75421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75432,"src":"3332:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3332:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3331:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75447,"nodeType":"FunctionDefinition","src":"3449:143:159","nodes":[],"body":{"id":75446,"nodeType":"Block","src":"3502:90:159","nodes":[],"statements":[{"assignments":[75439],"declarations":[{"constant":false,"id":75439,"mutability":"mutable","name":"router","nameLocation":"3528:6:159","nodeType":"VariableDeclaration","scope":75446,"src":"3512:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75438,"nodeType":"UserDefinedTypeName","pathNode":{"id":75437,"name":"Storage","nameLocations":["3512:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3512:7:159"},"referencedDeclaration":73470,"src":"3512:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75442,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75440,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"3537:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3512:38:159"},{"expression":{"expression":{"id":75443,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"3567:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3574:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"3567:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75436,"id":75445,"nodeType":"Return","src":"3560:25:159"}]},"baseFunctions":[73598],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"3458:11:159","parameters":{"id":75433,"nodeType":"ParameterList","parameters":[],"src":"3469:2:159"},"returnParameters":{"id":75436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75447,"src":"3493:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75434,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3492:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75462,"nodeType":"FunctionDefinition","src":"3598:143:159","nodes":[],"body":{"id":75461,"nodeType":"Block","src":"3651:90:159","nodes":[],"statements":[{"assignments":[75454],"declarations":[{"constant":false,"id":75454,"mutability":"mutable","name":"router","nameLocation":"3677:6:159","nodeType":"VariableDeclaration","scope":75461,"src":"3661:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75453,"nodeType":"UserDefinedTypeName","pathNode":{"id":75452,"name":"Storage","nameLocations":["3661:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3661:7:159"},"referencedDeclaration":73470,"src":"3661:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75455,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"3686:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3686:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3661:38:159"},{"expression":{"expression":{"id":75458,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75454,"src":"3716:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"3716:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75451,"id":75460,"nodeType":"Return","src":"3709:25:159"}]},"baseFunctions":[73603],"functionSelector":"78ee5dec","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxy","nameLocation":"3607:11:159","parameters":{"id":75448,"nodeType":"ParameterList","parameters":[],"src":"3618:2:159"},"returnParameters":{"id":75451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75462,"src":"3642:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75449,"name":"address","nodeType":"ElementaryTypeName","src":"3642:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3641:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75477,"nodeType":"FunctionDefinition","src":"3747:133:159","nodes":[],"body":{"id":75476,"nodeType":"Block","src":"3795:85:159","nodes":[],"statements":[{"assignments":[75469],"declarations":[{"constant":false,"id":75469,"mutability":"mutable","name":"router","nameLocation":"3821:6:159","nodeType":"VariableDeclaration","scope":75476,"src":"3805:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75468,"nodeType":"UserDefinedTypeName","pathNode":{"id":75467,"name":"Storage","nameLocations":["3805:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3805:7:159"},"referencedDeclaration":73470,"src":"3805:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75472,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75470,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"3830:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3830:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3805:38:159"},{"expression":{"expression":{"id":75473,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"3860:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3867:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"3860:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75466,"id":75475,"nodeType":"Return","src":"3853:20:159"}]},"baseFunctions":[73608],"functionSelector":"444d9172","implemented":true,"kind":"function","modifiers":[],"name":"mirror","nameLocation":"3756:6:159","parameters":{"id":75463,"nodeType":"ParameterList","parameters":[],"src":"3762:2:159"},"returnParameters":{"id":75466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75477,"src":"3786:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75464,"name":"address","nodeType":"ElementaryTypeName","src":"3786:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3785:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75497,"nodeType":"FunctionDefinition","src":"3886:143:159","nodes":[],"body":{"id":75496,"nodeType":"Block","src":"3941:88:159","nodes":[],"statements":[{"assignments":[75486],"declarations":[{"constant":false,"id":75486,"mutability":"mutable","name":"router","nameLocation":"3967:6:159","nodeType":"VariableDeclaration","scope":75496,"src":"3951:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75485,"nodeType":"UserDefinedTypeName","pathNode":{"id":75484,"name":"Storage","nameLocations":["3951:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3951:7:159"},"referencedDeclaration":73470,"src":"3951:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75487,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"3976:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3976:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3951:38:159"},{"expression":{"id":75494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75490,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"3999:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4006:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"3999:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75493,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75479,"src":"4015:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3999:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75495,"nodeType":"ExpressionStatement","src":"3999:23:159"}]},"baseFunctions":[73613],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":75482,"kind":"modifierInvocation","modifierName":{"id":75481,"name":"onlyOwner","nameLocations":["3931:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"3931:9:159"},"nodeType":"ModifierInvocation","src":"3931:9:159"}],"name":"setMirror","nameLocation":"3895:9:159","parameters":{"id":75480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75479,"mutability":"mutable","name":"_mirror","nameLocation":"3913:7:159","nodeType":"VariableDeclaration","scope":75497,"src":"3905:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75478,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3904:17:159"},"returnParameters":{"id":75483,"nodeType":"ParameterList","parameters":[],"src":"3941:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75512,"nodeType":"FunctionDefinition","src":"4085:159:159","nodes":[],"body":{"id":75511,"nodeType":"Block","src":"4146:98:159","nodes":[],"statements":[{"assignments":[75504],"declarations":[{"constant":false,"id":75504,"mutability":"mutable","name":"router","nameLocation":"4172:6:159","nodeType":"VariableDeclaration","scope":75511,"src":"4156:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75503,"nodeType":"UserDefinedTypeName","pathNode":{"id":75502,"name":"Storage","nameLocations":["4156:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4156:7:159"},"referencedDeclaration":73470,"src":"4156:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75505,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"4181:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4181:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4156:38:159"},{"expression":{"expression":{"id":75508,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75504,"src":"4211:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4218:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"4211:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75501,"id":75510,"nodeType":"Return","src":"4204:33:159"}]},"baseFunctions":[73618],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"4094:19:159","parameters":{"id":75498,"nodeType":"ParameterList","parameters":[],"src":"4113:2:159"},"returnParameters":{"id":75501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75512,"src":"4137:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75499,"name":"uint256","nodeType":"ElementaryTypeName","src":"4137:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4136:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75532,"nodeType":"FunctionDefinition","src":"4250:159:159","nodes":[],"body":{"id":75531,"nodeType":"Block","src":"4317:92:159","nodes":[],"statements":[{"assignments":[75522],"declarations":[{"constant":false,"id":75522,"mutability":"mutable","name":"router","nameLocation":"4343:6:159","nodeType":"VariableDeclaration","scope":75531,"src":"4327:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75521,"nodeType":"UserDefinedTypeName","pathNode":{"id":75520,"name":"Storage","nameLocations":["4327:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4327:7:159"},"referencedDeclaration":73470,"src":"4327:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75525,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75523,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"4352:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4352:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4327:38:159"},{"expression":{"baseExpression":{"expression":{"id":75526,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75522,"src":"4382:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"4382:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75529,"indexExpression":{"id":75528,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75514,"src":"4395:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4382:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"functionReturnParameters":75519,"id":75530,"nodeType":"Return","src":"4375:27:159"}]},"baseFunctions":[73626],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"4259:9:159","parameters":{"id":75515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75514,"mutability":"mutable","name":"codeId","nameLocation":"4277:6:159","nodeType":"VariableDeclaration","scope":75532,"src":"4269:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4269:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4268:16:159"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75532,"src":"4306:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"typeName":{"id":75517,"nodeType":"UserDefinedTypeName","pathNode":{"id":75516,"name":"CodeState","nameLocations":["4306:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":73474,"src":"4306:9:159"},"referencedDeclaration":73474,"src":"4306:9:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"visibility":"internal"}],"src":"4305:11:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75547,"nodeType":"FunctionDefinition","src":"4415:147:159","nodes":[],"body":{"id":75546,"nodeType":"Block","src":"4470:92:159","nodes":[],"statements":[{"assignments":[75539],"declarations":[{"constant":false,"id":75539,"mutability":"mutable","name":"router","nameLocation":"4496:6:159","nodeType":"VariableDeclaration","scope":75546,"src":"4480:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75538,"nodeType":"UserDefinedTypeName","pathNode":{"id":75537,"name":"Storage","nameLocations":["4480:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4480:7:159"},"referencedDeclaration":73470,"src":"4480:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75542,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75540,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"4505:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4480:38:159"},{"expression":{"expression":{"id":75543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75539,"src":"4535:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4542:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"4535:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75536,"id":75545,"nodeType":"Return","src":"4528:27:159"}]},"baseFunctions":[73631],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"4424:13:159","parameters":{"id":75533,"nodeType":"ParameterList","parameters":[],"src":"4437:2:159"},"returnParameters":{"id":75536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75547,"src":"4461:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75534,"name":"uint256","nodeType":"ElementaryTypeName","src":"4461:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75566,"nodeType":"FunctionDefinition","src":"4568:166:159","nodes":[],"body":{"id":75565,"nodeType":"Block","src":"4638:96:159","nodes":[],"statements":[{"assignments":[75556],"declarations":[{"constant":false,"id":75556,"mutability":"mutable","name":"router","nameLocation":"4664:6:159","nodeType":"VariableDeclaration","scope":75565,"src":"4648:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75555,"nodeType":"UserDefinedTypeName","pathNode":{"id":75554,"name":"Storage","nameLocations":["4648:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4648:7:159"},"referencedDeclaration":73470,"src":"4648:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75559,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75557,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"4673:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4673:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4648:38:159"},{"expression":{"baseExpression":{"expression":{"id":75560,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75556,"src":"4703:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4710:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"4703:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":75563,"indexExpression":{"id":75562,"name":"program","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75549,"src":"4719:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4703:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75553,"id":75564,"nodeType":"Return","src":"4696:31:159"}]},"baseFunctions":[73639],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"4577:13:159","parameters":{"id":75550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75549,"mutability":"mutable","name":"program","nameLocation":"4599:7:159","nodeType":"VariableDeclaration","scope":75566,"src":"4591:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75548,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4590:17:159"},"returnParameters":{"id":75553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75566,"src":"4629:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4629:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4628:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75581,"nodeType":"FunctionDefinition","src":"4785:173:159","nodes":[],"body":{"id":75580,"nodeType":"Block","src":"4853:105:159","nodes":[],"statements":[{"assignments":[75573],"declarations":[{"constant":false,"id":75573,"mutability":"mutable","name":"router","nameLocation":"4879:6:159","nodeType":"VariableDeclaration","scope":75580,"src":"4863:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75572,"nodeType":"UserDefinedTypeName","pathNode":{"id":75571,"name":"Storage","nameLocations":["4863:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4863:7:159"},"referencedDeclaration":73470,"src":"4863:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75574,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"4888:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4888:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4863:38:159"},{"expression":{"expression":{"id":75577,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75573,"src":"4918:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4925:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"4918:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75570,"id":75579,"nodeType":"Return","src":"4911:40:159"}]},"baseFunctions":[73644],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"4794:26:159","parameters":{"id":75567,"nodeType":"ParameterList","parameters":[],"src":"4820:2:159"},"returnParameters":{"id":75570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75581,"src":"4844:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75568,"name":"uint256","nodeType":"ElementaryTypeName","src":"4844:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4843:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75598,"nodeType":"FunctionDefinition","src":"4964:204:159","nodes":[],"body":{"id":75597,"nodeType":"Block","src":"5025:143:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75586,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75614,"src":"5097:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5097:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75588,"name":"signingThresholdPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75581,"src":"5117:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5097:48:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39393939","id":75591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5148:4:159","typeDescriptions":{"typeIdentifier":"t_rational_9999_by_1","typeString":"int_const 9999"},"value":"9999"},"src":"5097:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75593,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5096:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":75594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5156:5:159","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"5096:65:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75585,"id":75596,"nodeType":"Return","src":"5089:72:159"}]},"baseFunctions":[73649],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"4973:19:159","parameters":{"id":75582,"nodeType":"ParameterList","parameters":[],"src":"4992:2:159"},"returnParameters":{"id":75585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75598,"src":"5016:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75583,"name":"uint256","nodeType":"ElementaryTypeName","src":"5016:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5015:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75614,"nodeType":"FunctionDefinition","src":"5174:157:159","nodes":[],"body":{"id":75613,"nodeType":"Block","src":"5231:100:159","nodes":[],"statements":[{"assignments":[75605],"declarations":[{"constant":false,"id":75605,"mutability":"mutable","name":"router","nameLocation":"5257:6:159","nodeType":"VariableDeclaration","scope":75613,"src":"5241:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75604,"nodeType":"UserDefinedTypeName","pathNode":{"id":75603,"name":"Storage","nameLocations":["5241:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5241:7:159"},"referencedDeclaration":73470,"src":"5241:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75608,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75606,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"5266:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5241:38:159"},{"expression":{"expression":{"expression":{"id":75609,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75605,"src":"5296:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"5296:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":75611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5318:6:159","memberName":"length","nodeType":"MemberAccess","src":"5296:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75602,"id":75612,"nodeType":"Return","src":"5289:35:159"}]},"baseFunctions":[73654],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5183:15:159","parameters":{"id":75599,"nodeType":"ParameterList","parameters":[],"src":"5198:2:159"},"returnParameters":{"id":75602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75614,"src":"5222:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75600,"name":"uint256","nodeType":"ElementaryTypeName","src":"5222:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5221:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75633,"nodeType":"FunctionDefinition","src":"5337:171:159","nodes":[],"body":{"id":75632,"nodeType":"Block","src":"5408:100:159","nodes":[],"statements":[{"assignments":[75623],"declarations":[{"constant":false,"id":75623,"mutability":"mutable","name":"router","nameLocation":"5434:6:159","nodeType":"VariableDeclaration","scope":75632,"src":"5418:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75622,"nodeType":"UserDefinedTypeName","pathNode":{"id":75621,"name":"Storage","nameLocations":["5418:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5418:7:159"},"referencedDeclaration":73470,"src":"5418:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75626,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75624,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"5443:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5443:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5418:38:159"},{"expression":{"baseExpression":{"expression":{"id":75627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75623,"src":"5473:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5480:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"5473:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":75630,"indexExpression":{"id":75629,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75616,"src":"5491:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":75620,"id":75631,"nodeType":"Return","src":"5466:35:159"}]},"baseFunctions":[73661],"functionSelector":"8febbd59","implemented":true,"kind":"function","modifiers":[],"name":"validatorExists","nameLocation":"5346:15:159","parameters":{"id":75617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75616,"mutability":"mutable","name":"validator","nameLocation":"5370:9:159","nodeType":"VariableDeclaration","scope":75633,"src":"5362:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75615,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5361:19:159"},"returnParameters":{"id":75620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75633,"src":"5402:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75618,"name":"bool","nodeType":"ElementaryTypeName","src":"5402:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5401:6:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75649,"nodeType":"FunctionDefinition","src":"5514:154:159","nodes":[],"body":{"id":75648,"nodeType":"Block","src":"5575:93:159","nodes":[],"statements":[{"assignments":[75641],"declarations":[{"constant":false,"id":75641,"mutability":"mutable","name":"router","nameLocation":"5601:6:159","nodeType":"VariableDeclaration","scope":75648,"src":"5585:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75640,"nodeType":"UserDefinedTypeName","pathNode":{"id":75639,"name":"Storage","nameLocations":["5585:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5585:7:159"},"referencedDeclaration":73470,"src":"5585:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75644,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75642,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"5610:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5610:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5585:38:159"},{"expression":{"expression":{"id":75645,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75641,"src":"5640:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5647:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"5640:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":75638,"id":75647,"nodeType":"Return","src":"5633:28:159"}]},"baseFunctions":[73667],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5523:10:159","parameters":{"id":75634,"nodeType":"ParameterList","parameters":[],"src":"5533:2:159"},"returnParameters":{"id":75638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75649,"src":"5557:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75635,"name":"address","nodeType":"ElementaryTypeName","src":"5557:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75636,"nodeType":"ArrayTypeName","src":"5557:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5556:18:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75668,"nodeType":"FunctionDefinition","src":"5731:209:159","nodes":[],"body":{"id":75667,"nodeType":"Block","src":"5819:121:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75657,"name":"_cleanValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76793,"src":"5829:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75659,"nodeType":"ExpressionStatement","src":"5829:18:159"},{"expression":{"arguments":[{"id":75661,"name":"validatorsAddressArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"5872:22:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":75660,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76848,"src":"5857:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5857:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75663,"nodeType":"ExpressionStatement","src":"5857:38:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75664,"name":"ValidatorsSetChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5911:20:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5911:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75666,"nodeType":"EmitStatement","src":"5906:27:159"}]},"baseFunctions":[73673],"functionSelector":"e71731e4","implemented":true,"kind":"function","modifiers":[{"id":75655,"kind":"modifierInvocation","modifierName":{"id":75654,"name":"onlyOwner","nameLocations":["5809:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"5809:9:159"},"nodeType":"ModifierInvocation","src":"5809:9:159"}],"name":"updateValidators","nameLocation":"5740:16:159","parameters":{"id":75653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75652,"mutability":"mutable","name":"validatorsAddressArray","nameLocation":"5776:22:159","nodeType":"VariableDeclaration","scope":75668,"src":"5757:41:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75650,"name":"address","nodeType":"ElementaryTypeName","src":"5757:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75651,"nodeType":"ArrayTypeName","src":"5757:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5756:43:159"},"returnParameters":{"id":75656,"nodeType":"ParameterList","parameters":[],"src":"5819:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75683,"nodeType":"FunctionDefinition","src":"5994:140:159","nodes":[],"body":{"id":75682,"nodeType":"Block","src":"6045:89:159","nodes":[],"statements":[{"assignments":[75675],"declarations":[{"constant":false,"id":75675,"mutability":"mutable","name":"router","nameLocation":"6071:6:159","nodeType":"VariableDeclaration","scope":75682,"src":"6055:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75674,"nodeType":"UserDefinedTypeName","pathNode":{"id":75673,"name":"Storage","nameLocations":["6055:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6055:7:159"},"referencedDeclaration":73470,"src":"6055:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75678,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75676,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"6080:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6080:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6055:38:159"},{"expression":{"expression":{"id":75679,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75675,"src":"6110:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6117:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"6110:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75672,"id":75681,"nodeType":"Return","src":"6103:24:159"}]},"baseFunctions":[73678],"functionSelector":"d3fd6364","implemented":true,"kind":"function","modifiers":[],"name":"baseWeight","nameLocation":"6003:10:159","parameters":{"id":75669,"nodeType":"ParameterList","parameters":[],"src":"6013:2:159"},"returnParameters":{"id":75672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75683,"src":"6037:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75670,"name":"uint64","nodeType":"ElementaryTypeName","src":"6037:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6036:8:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75707,"nodeType":"FunctionDefinition","src":"6140:204:159","nodes":[],"body":{"id":75706,"nodeType":"Block","src":"6202:142:159","nodes":[],"statements":[{"assignments":[75692],"declarations":[{"constant":false,"id":75692,"mutability":"mutable","name":"router","nameLocation":"6228:6:159","nodeType":"VariableDeclaration","scope":75706,"src":"6212:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75691,"nodeType":"UserDefinedTypeName","pathNode":{"id":75690,"name":"Storage","nameLocations":["6212:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6212:7:159"},"referencedDeclaration":73470,"src":"6212:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75695,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75693,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"6237:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6212:38:159"},{"expression":{"id":75700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75696,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75692,"src":"6260:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6267:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"6260:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75699,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75685,"src":"6280:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6260:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75701,"nodeType":"ExpressionStatement","src":"6260:31:159"},{"eventCall":{"arguments":[{"id":75703,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75685,"src":"6325:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75702,"name":"BaseWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6307:17:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":75704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75705,"nodeType":"EmitStatement","src":"6302:35:159"}]},"baseFunctions":[73683],"functionSelector":"8028861a","implemented":true,"kind":"function","modifiers":[{"id":75688,"kind":"modifierInvocation","modifierName":{"id":75687,"name":"onlyOwner","nameLocations":["6192:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6192:9:159"},"nodeType":"ModifierInvocation","src":"6192:9:159"}],"name":"setBaseWeight","nameLocation":"6149:13:159","parameters":{"id":75686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75685,"mutability":"mutable","name":"_baseWeight","nameLocation":"6170:11:159","nodeType":"VariableDeclaration","scope":75707,"src":"6163:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75684,"name":"uint64","nodeType":"ElementaryTypeName","src":"6163:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6162:20:159"},"returnParameters":{"id":75689,"nodeType":"ParameterList","parameters":[],"src":"6202:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75722,"nodeType":"FunctionDefinition","src":"6350:149:159","nodes":[],"body":{"id":75721,"nodeType":"Block","src":"6406:93:159","nodes":[],"statements":[{"assignments":[75714],"declarations":[{"constant":false,"id":75714,"mutability":"mutable","name":"router","nameLocation":"6432:6:159","nodeType":"VariableDeclaration","scope":75721,"src":"6416:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75713,"nodeType":"UserDefinedTypeName","pathNode":{"id":75712,"name":"Storage","nameLocations":["6416:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6416:7:159"},"referencedDeclaration":73470,"src":"6416:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75715,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"6441:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6416:38:159"},{"expression":{"expression":{"id":75718,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75714,"src":"6471:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6478:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6471:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75711,"id":75720,"nodeType":"Return","src":"6464:28:159"}]},"baseFunctions":[73688],"functionSelector":"0834fecc","implemented":true,"kind":"function","modifiers":[],"name":"valuePerWeight","nameLocation":"6359:14:159","parameters":{"id":75708,"nodeType":"ParameterList","parameters":[],"src":"6373:2:159"},"returnParameters":{"id":75711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75722,"src":"6397:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75709,"name":"uint128","nodeType":"ElementaryTypeName","src":"6397:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6396:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75746,"nodeType":"FunctionDefinition","src":"6505:229:159","nodes":[],"body":{"id":75745,"nodeType":"Block","src":"6576:158:159","nodes":[],"statements":[{"assignments":[75731],"declarations":[{"constant":false,"id":75731,"mutability":"mutable","name":"router","nameLocation":"6602:6:159","nodeType":"VariableDeclaration","scope":75745,"src":"6586:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75730,"nodeType":"UserDefinedTypeName","pathNode":{"id":75729,"name":"Storage","nameLocations":["6586:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6586:7:159"},"referencedDeclaration":73470,"src":"6586:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75732,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"6611:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6611:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6586:38:159"},{"expression":{"id":75739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75735,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75731,"src":"6634:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6641:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6634:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75738,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75724,"src":"6658:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6634:39:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75740,"nodeType":"ExpressionStatement","src":"6634:39:159"},{"eventCall":{"arguments":[{"id":75742,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75724,"src":"6711:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75741,"name":"ValuePerWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73573,"src":"6689:21:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":75743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75744,"nodeType":"EmitStatement","src":"6684:43:159"}]},"baseFunctions":[73693],"functionSelector":"a6bbbe1c","implemented":true,"kind":"function","modifiers":[{"id":75727,"kind":"modifierInvocation","modifierName":{"id":75726,"name":"onlyOwner","nameLocations":["6566:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6566:9:159"},"nodeType":"ModifierInvocation","src":"6566:9:159"}],"name":"setValuePerWeight","nameLocation":"6514:17:159","parameters":{"id":75725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75724,"mutability":"mutable","name":"_valuePerWeight","nameLocation":"6540:15:159","nodeType":"VariableDeclaration","scope":75746,"src":"6532:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75723,"name":"uint128","nodeType":"ElementaryTypeName","src":"6532:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6531:25:159"},"returnParameters":{"id":75728,"nodeType":"ParameterList","parameters":[],"src":"6576:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75761,"nodeType":"FunctionDefinition","src":"6740:113:159","nodes":[],"body":{"id":75760,"nodeType":"Block","src":"6789:64:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75753,"name":"baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75683,"src":"6814:10:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":75754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6814:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6806:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":75751,"name":"uint128","nodeType":"ElementaryTypeName","src":"6806:7:159","typeDescriptions":{}}},"id":75755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75756,"name":"valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75722,"src":"6830:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":75757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6830:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6806:40:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75750,"id":75759,"nodeType":"Return","src":"6799:47:159"}]},"baseFunctions":[73698],"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"6749:7:159","parameters":{"id":75747,"nodeType":"ParameterList","parameters":[],"src":"6756:2:159"},"returnParameters":{"id":75750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75761,"src":"6780:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75748,"name":"uint128","nodeType":"ElementaryTypeName","src":"6780:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6779:9:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75813,"nodeType":"FunctionDefinition","src":"6889:453:159","nodes":[],"body":{"id":75812,"nodeType":"Block","src":"6965:377:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75769,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"6983:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6997:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6983:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":75773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7011: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":75772,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7002:8:159","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7017:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7002:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6983:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f6254784861736820636f756c646e277420626520666f756e64","id":75778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7020:30:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""},"value":"blobTxHash couldn't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""}],"id":75768,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6975:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6975:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75780,"nodeType":"ExpressionStatement","src":"6975:76:159"},{"assignments":[75783],"declarations":[{"constant":false,"id":75783,"mutability":"mutable","name":"router","nameLocation":"7078:6:159","nodeType":"VariableDeclaration","scope":75812,"src":"7062:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75782,"nodeType":"UserDefinedTypeName","pathNode":{"id":75781,"name":"Storage","nameLocations":["7062:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"7062:7:159"},"referencedDeclaration":73470,"src":"7062:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75786,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75784,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"7087:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7087:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7062:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":75794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75788,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"7119:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7126:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"7119:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75791,"indexExpression":{"id":75790,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75763,"src":"7132:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7119:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75792,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"7143:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7153:7:159","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":73471,"src":"7143:17:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"7119:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652077697468207375636820696420616c726561647920726571756573746564206f722076616c696461746564","id":75795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7162:50:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""},"value":"code with such id already requested or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""}],"id":75787,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7111:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7111:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75797,"nodeType":"ExpressionStatement","src":"7111:102:159"},{"expression":{"id":75805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75798,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"7224:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7231:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"7224:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75802,"indexExpression":{"id":75800,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75763,"src":"7237:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7224:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75803,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"7247:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7257:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73472,"src":"7247:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"7224:52:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"id":75806,"nodeType":"ExpressionStatement","src":"7224:52:159"},{"eventCall":{"arguments":[{"id":75808,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75763,"src":"7316:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75809,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"7324:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75807,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"7292:23:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":75810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7292:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75811,"nodeType":"EmitStatement","src":"7287:48:159"}]},"baseFunctions":[73705],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"6898:21:159","parameters":{"id":75766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75763,"mutability":"mutable","name":"codeId","nameLocation":"6928:6:159","nodeType":"VariableDeclaration","scope":75813,"src":"6920:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75762,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6920:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75765,"mutability":"mutable","name":"blobTxHash","nameLocation":"6944:10:159","nodeType":"VariableDeclaration","scope":75813,"src":"6936:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6936:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6919:36:159"},"returnParameters":{"id":75767,"nodeType":"ParameterList","parameters":[],"src":"6965:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75850,"nodeType":"FunctionDefinition","src":"7348:381:159","nodes":[],"body":{"id":75849,"nodeType":"Block","src":"7504:225:159","nodes":[],"statements":[{"assignments":[75827,75829],"declarations":[{"constant":false,"id":75827,"mutability":"mutable","name":"actorId","nameLocation":"7523:7:159","nodeType":"VariableDeclaration","scope":75849,"src":"7515:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75826,"name":"address","nodeType":"ElementaryTypeName","src":"7515:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75829,"mutability":"mutable","name":"executableBalance","nameLocation":"7540:17:159","nodeType":"VariableDeclaration","scope":75849,"src":"7532:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75828,"name":"uint128","nodeType":"ElementaryTypeName","src":"7532:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75835,"initialValue":{"arguments":[{"id":75831,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75815,"src":"7590:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75832,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75817,"src":"7598:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75833,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75821,"src":"7604:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75830,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"7561:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7561:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7514:97:159"},{"expression":{"arguments":[{"expression":{"id":75840,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"7651:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7654:6:159","memberName":"origin","nodeType":"MemberAccess","src":"7651:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75842,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75819,"src":"7662:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75843,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75821,"src":"7671:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75844,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75829,"src":"7679:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":75837,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75827,"src":"7630:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75836,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"7622:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7639:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"7622:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:75:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75846,"nodeType":"ExpressionStatement","src":"7622:75:159"},{"expression":{"id":75847,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75827,"src":"7715:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75825,"id":75848,"nodeType":"Return","src":"7708:14:159"}]},"baseFunctions":[73718],"functionSelector":"8074b455","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"7357:13:159","parameters":{"id":75822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75815,"mutability":"mutable","name":"codeId","nameLocation":"7379:6:159","nodeType":"VariableDeclaration","scope":75850,"src":"7371:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7371:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75817,"mutability":"mutable","name":"salt","nameLocation":"7395:4:159","nodeType":"VariableDeclaration","scope":75850,"src":"7387:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7387:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75819,"mutability":"mutable","name":"payload","nameLocation":"7416:7:159","nodeType":"VariableDeclaration","scope":75850,"src":"7401:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75818,"name":"bytes","nodeType":"ElementaryTypeName","src":"7401:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75821,"mutability":"mutable","name":"_value","nameLocation":"7433:6:159","nodeType":"VariableDeclaration","scope":75850,"src":"7425:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75820,"name":"uint128","nodeType":"ElementaryTypeName","src":"7425:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7370:70:159"},"returnParameters":{"id":75825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75850,"src":"7491:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75823,"name":"address","nodeType":"ElementaryTypeName","src":"7491:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7490:9:159"},"scope":76862,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75908,"nodeType":"FunctionDefinition","src":"7735:596:159","nodes":[],"body":{"id":75907,"nodeType":"Block","src":"7951:380:159","nodes":[],"statements":[{"assignments":[75866,75868],"declarations":[{"constant":false,"id":75866,"mutability":"mutable","name":"actorId","nameLocation":"7970:7:159","nodeType":"VariableDeclaration","scope":75907,"src":"7962:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75865,"name":"address","nodeType":"ElementaryTypeName","src":"7962:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75868,"mutability":"mutable","name":"executableBalance","nameLocation":"7987:17:159","nodeType":"VariableDeclaration","scope":75907,"src":"7979:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75867,"name":"uint128","nodeType":"ElementaryTypeName","src":"7979:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75874,"initialValue":{"arguments":[{"id":75870,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"8037:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75871,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"8045:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75872,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"8051:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75869,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"8008:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8008:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7961:97:159"},{"assignments":[75877],"declarations":[{"constant":false,"id":75877,"mutability":"mutable","name":"mirrorInstance","nameLocation":"8077:14:159","nodeType":"VariableDeclaration","scope":75907,"src":"8069:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":75876,"nodeType":"UserDefinedTypeName","pathNode":{"id":75875,"name":"IMirror","nameLocations":["8069:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"8069:7:159"},"referencedDeclaration":73387,"src":"8069:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":75881,"initialValue":{"arguments":[{"id":75879,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75866,"src":"8102:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75878,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"8094:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8094:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"8069:41:159"},{"expression":{"arguments":[{"id":75885,"name":"decoderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75852,"src":"8150:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":75889,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"8200:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75890,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"8208:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75887,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8183:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8187:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"8183:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8183:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75886,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8173:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8173:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75882,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75877,"src":"8121:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8136:13:159","memberName":"createDecoder","nodeType":"MemberAccess","referencedDeclaration":73375,"src":"8121:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":75893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:94:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75894,"nodeType":"ExpressionStatement","src":"8121:94:159"},{"expression":{"arguments":[{"expression":{"id":75898,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"8253:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8256:6:159","memberName":"origin","nodeType":"MemberAccess","src":"8253:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75900,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75858,"src":"8264:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75901,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"8273:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75902,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75868,"src":"8281:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75895,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75877,"src":"8226:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8241:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"8226:26:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8226:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75904,"nodeType":"ExpressionStatement","src":"8226:73:159"},{"expression":{"id":75905,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75866,"src":"8317:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75864,"id":75906,"nodeType":"Return","src":"8310:14:159"}]},"baseFunctions":[73733],"functionSelector":"666d124c","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"7744:24:159","parameters":{"id":75861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75852,"mutability":"mutable","name":"decoderImplementation","nameLocation":"7786:21:159","nodeType":"VariableDeclaration","scope":75908,"src":"7778:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75851,"name":"address","nodeType":"ElementaryTypeName","src":"7778:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75854,"mutability":"mutable","name":"codeId","nameLocation":"7825:6:159","nodeType":"VariableDeclaration","scope":75908,"src":"7817:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7817:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75856,"mutability":"mutable","name":"salt","nameLocation":"7849:4:159","nodeType":"VariableDeclaration","scope":75908,"src":"7841:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75858,"mutability":"mutable","name":"payload","nameLocation":"7878:7:159","nodeType":"VariableDeclaration","scope":75908,"src":"7863:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75857,"name":"bytes","nodeType":"ElementaryTypeName","src":"7863:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75860,"mutability":"mutable","name":"_value","nameLocation":"7903:6:159","nodeType":"VariableDeclaration","scope":75908,"src":"7895:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75859,"name":"uint128","nodeType":"ElementaryTypeName","src":"7895:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7768:147:159"},"returnParameters":{"id":75864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75908,"src":"7942:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75862,"name":"address","nodeType":"ElementaryTypeName","src":"7942:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7941:9:159"},"scope":76862,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76021,"nodeType":"FunctionDefinition","src":"8337:1117:159","nodes":[],"body":{"id":76020,"nodeType":"Block","src":"8444:1010:159","nodes":[],"statements":[{"assignments":[75920],"declarations":[{"constant":false,"id":75920,"mutability":"mutable","name":"router","nameLocation":"8470:6:159","nodeType":"VariableDeclaration","scope":76020,"src":"8454:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75919,"nodeType":"UserDefinedTypeName","pathNode":{"id":75918,"name":"Storage","nameLocations":["8454:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"8454:7:159"},"referencedDeclaration":73470,"src":"8454:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75923,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75921,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"8479:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8479:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8454:38:159"},{"assignments":[75925],"declarations":[{"constant":false,"id":75925,"mutability":"mutable","name":"codeCommetmentsHashes","nameLocation":"8516:21:159","nodeType":"VariableDeclaration","scope":76020,"src":"8503:34:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75924,"name":"bytes","nodeType":"ElementaryTypeName","src":"8503:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75926,"nodeType":"VariableDeclarationStatement","src":"8503:34:159"},{"body":{"id":76011,"nodeType":"Block","src":"8606:766:159","statements":[{"assignments":[75940],"declarations":[{"constant":false,"id":75940,"mutability":"mutable","name":"codeCommitment","nameLocation":"8644:14:159","nodeType":"VariableDeclaration","scope":76011,"src":"8620:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":75939,"nodeType":"UserDefinedTypeName","pathNode":{"id":75938,"name":"CodeCommitment","nameLocations":["8620:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"8620:14:159"},"referencedDeclaration":73479,"src":"8620:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"id":75944,"initialValue":{"baseExpression":{"id":75941,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"8661:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75943,"indexExpression":{"id":75942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75928,"src":"8682:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8661:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"8620:64:159"},{"assignments":[75946],"declarations":[{"constant":false,"id":75946,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"8707:18:159","nodeType":"VariableDeclaration","scope":76011,"src":"8699:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8699:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75950,"initialValue":{"arguments":[{"id":75948,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"8748:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}],"id":75947,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76719,"src":"8728:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$73479_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.CodeCommitment calldata) pure returns (bytes32)"}},"id":75949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8699:64:159"},{"expression":{"id":75958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75951,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75925,"src":"8778:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75955,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75925,"src":"8815:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":75956,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75946,"src":"8838:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8802:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75952,"name":"bytes","nodeType":"ElementaryTypeName","src":"8802:5:159","typeDescriptions":{}}},"id":75954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8808:6:159","memberName":"concat","nodeType":"MemberAccess","src":"8802:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8802:55:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8778:79:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75959,"nodeType":"ExpressionStatement","src":"8778:79:159"},{"assignments":[75961],"declarations":[{"constant":false,"id":75961,"mutability":"mutable","name":"codeId","nameLocation":"8880:6:159","nodeType":"VariableDeclaration","scope":76011,"src":"8872:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8872:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75964,"initialValue":{"expression":{"id":75962,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"8889:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8904:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73476,"src":"8889:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8872:34:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":75972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75966,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75920,"src":"8928:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8935:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"8928:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75969,"indexExpression":{"id":75968,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75961,"src":"8941:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8928:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75970,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"8952:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8962:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73472,"src":"8952:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"8928:53:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652073686f756c642062652072657175657374656420666f722076616c69646174696f6e","id":75973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8983:41:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""},"value":"code should be requested for validation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""}],"id":75965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8920:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8920:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75975,"nodeType":"ExpressionStatement","src":"8920:105:159"},{"condition":{"expression":{"id":75976,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"9044:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9059:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"9044:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76009,"nodeType":"Block","src":"9247:115:159","statements":[{"expression":{"id":76002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9265:27:159","subExpression":{"baseExpression":{"expression":{"id":75998,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75920,"src":"9272:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9279:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9272:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76001,"indexExpression":{"id":76000,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75961,"src":"9285:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9272:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76003,"nodeType":"ExpressionStatement","src":"9265:27:159"},{"eventCall":{"arguments":[{"id":76005,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75961,"src":"9333:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":76006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9341:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76004,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"9316:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9316:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76008,"nodeType":"EmitStatement","src":"9311:36:159"}]},"id":76010,"nodeType":"IfStatement","src":"9040:322:159","trueBody":{"id":75997,"nodeType":"Block","src":"9066:175:159","statements":[{"expression":{"id":75985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75978,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75920,"src":"9084:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9091:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9084:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75982,"indexExpression":{"id":75980,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75961,"src":"9097:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9084:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75983,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"9107:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9117:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"9107:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"9084:42:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"id":75986,"nodeType":"ExpressionStatement","src":"9084:42:159"},{"expression":{"id":75990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9144:28:159","subExpression":{"expression":{"id":75987,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75920,"src":"9144:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9151:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"9144:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75991,"nodeType":"ExpressionStatement","src":"9144:28:159"},{"eventCall":{"arguments":[{"id":75993,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75961,"src":"9213:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":75994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9221:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75992,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"9196:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":75995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75996,"nodeType":"EmitStatement","src":"9191:35:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75931,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75928,"src":"8568:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75932,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"8572:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8593:6:159","memberName":"length","nodeType":"MemberAccess","src":"8572:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8568:31:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76012,"initializationExpression":{"assignments":[75928],"declarations":[{"constant":false,"id":75928,"mutability":"mutable","name":"i","nameLocation":"8561:1:159","nodeType":"VariableDeclaration","scope":76012,"src":"8553:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75927,"name":"uint256","nodeType":"ElementaryTypeName","src":"8553:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75930,"initialValue":{"hexValue":"30","id":75929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8565:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8553:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8601:3:159","subExpression":{"id":75935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75928,"src":"8601:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75937,"nodeType":"ExpressionStatement","src":"8601:3:159"},"nodeType":"ForStatement","src":"8548:824:159"},{"expression":{"arguments":[{"arguments":[{"id":76015,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75925,"src":"9412:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76014,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9402:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9402:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76017,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75915,"src":"9436:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76013,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76259,"src":"9382:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9382:65:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76019,"nodeType":"ExpressionStatement","src":"9382:65:159"}]},"baseFunctions":[73743],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"8346:11:159","parameters":{"id":75916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75912,"mutability":"mutable","name":"codeCommitmentsArray","nameLocation":"8384:20:159","nodeType":"VariableDeclaration","scope":76021,"src":"8358:46:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment[]"},"typeName":{"baseType":{"id":75910,"nodeType":"UserDefinedTypeName","pathNode":{"id":75909,"name":"CodeCommitment","nameLocations":["8358:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"8358:14:159"},"referencedDeclaration":73479,"src":"8358:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"id":75911,"nodeType":"ArrayTypeName","src":"8358:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_storage_$dyn_storage_ptr","typeString":"struct IRouter.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":75915,"mutability":"mutable","name":"signatures","nameLocation":"8423:10:159","nodeType":"VariableDeclaration","scope":76021,"src":"8406:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":75913,"name":"bytes","nodeType":"ElementaryTypeName","src":"8406:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":75914,"nodeType":"ArrayTypeName","src":"8406:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8357:77:159"},"returnParameters":{"id":75917,"nodeType":"ParameterList","parameters":[],"src":"8444:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76079,"nodeType":"FunctionDefinition","src":"9460:604:159","nodes":[],"body":{"id":76078,"nodeType":"Block","src":"9603:461:159","nodes":[],"statements":[{"assignments":[76034],"declarations":[{"constant":false,"id":76034,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"9626:22:159","nodeType":"VariableDeclaration","scope":76078,"src":"9613:35:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76033,"name":"bytes","nodeType":"ElementaryTypeName","src":"9613:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76035,"nodeType":"VariableDeclarationStatement","src":"9613:35:159"},{"body":{"id":76069,"nodeType":"Block","src":"9718:263:159","statements":[{"assignments":[76049],"declarations":[{"constant":false,"id":76049,"mutability":"mutable","name":"blockCommitment","nameLocation":"9757:15:159","nodeType":"VariableDeclaration","scope":76069,"src":"9732:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76048,"nodeType":"UserDefinedTypeName","pathNode":{"id":76047,"name":"BlockCommitment","nameLocations":["9732:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73490,"src":"9732:15:159"},"referencedDeclaration":73490,"src":"9732:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"id":76053,"initialValue":{"baseExpression":{"id":76050,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76025,"src":"9775:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76052,"indexExpression":{"id":76051,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76037,"src":"9797:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9775:24:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"9732:67:159"},{"assignments":[76055],"declarations":[{"constant":false,"id":76055,"mutability":"mutable","name":"blockCommitmentHash","nameLocation":"9822:19:159","nodeType":"VariableDeclaration","scope":76069,"src":"9814:27:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9814:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76059,"initialValue":{"arguments":[{"id":76057,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76049,"src":"9857:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}],"id":76056,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76355,"src":"9844:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockCommitment_$73490_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.BlockCommitment calldata) returns (bytes32)"}},"id":76058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9814:59:159"},{"expression":{"id":76067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76060,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76034,"src":"9888:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76064,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76034,"src":"9926:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76065,"name":"blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76055,"src":"9950:19:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9913:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76061,"name":"bytes","nodeType":"ElementaryTypeName","src":"9913:5:159","typeDescriptions":{}}},"id":76063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9919:6:159","memberName":"concat","nodeType":"MemberAccess","src":"9913:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9913:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9888:82:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76068,"nodeType":"ExpressionStatement","src":"9888:82:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76040,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76037,"src":"9679:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76041,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76025,"src":"9683:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9705:6:159","memberName":"length","nodeType":"MemberAccess","src":"9683:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9679:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76070,"initializationExpression":{"assignments":[76037],"declarations":[{"constant":false,"id":76037,"mutability":"mutable","name":"i","nameLocation":"9672:1:159","nodeType":"VariableDeclaration","scope":76070,"src":"9664:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76036,"name":"uint256","nodeType":"ElementaryTypeName","src":"9664:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76039,"initialValue":{"hexValue":"30","id":76038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9676:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9664:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9713:3:159","subExpression":{"id":76044,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76037,"src":"9713:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76046,"nodeType":"ExpressionStatement","src":"9713:3:159"},"nodeType":"ForStatement","src":"9659:322:159"},{"expression":{"arguments":[{"arguments":[{"id":76073,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76034,"src":"10021:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76072,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10011:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10011:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76075,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76028,"src":"10046:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76071,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76259,"src":"9991:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9991:66:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76077,"nodeType":"ExpressionStatement","src":"9991:66:159"}]},"baseFunctions":[73753],"functionSelector":"26637f6d","implemented":true,"kind":"function","modifiers":[{"id":76031,"kind":"modifierInvocation","modifierName":{"id":76030,"name":"nonReentrant","nameLocations":["9586:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":44000,"src":"9586:12:159"},"nodeType":"ModifierInvocation","src":"9586:12:159"}],"name":"commitBlocks","nameLocation":"9469:12:159","parameters":{"id":76029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76025,"mutability":"mutable","name":"blockCommitmentsArray","nameLocation":"9509:21:159","nodeType":"VariableDeclaration","scope":76079,"src":"9482:48:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment[]"},"typeName":{"baseType":{"id":76023,"nodeType":"UserDefinedTypeName","pathNode":{"id":76022,"name":"BlockCommitment","nameLocations":["9482:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73490,"src":"9482:15:159"},"referencedDeclaration":73490,"src":"9482:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"id":76024,"nodeType":"ArrayTypeName","src":"9482:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_storage_$dyn_storage_ptr","typeString":"struct IRouter.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":76028,"mutability":"mutable","name":"signatures","nameLocation":"9549:10:159","nodeType":"VariableDeclaration","scope":76079,"src":"9532:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76026,"name":"bytes","nodeType":"ElementaryTypeName","src":"9532:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76027,"nodeType":"ArrayTypeName","src":"9532:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9481:79:159"},"returnParameters":{"id":76032,"nodeType":"ParameterList","parameters":[],"src":"9603:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76170,"nodeType":"FunctionDefinition","src":"10106:951:159","nodes":[],"body":{"id":76169,"nodeType":"Block","src":"10245:812:159","nodes":[],"statements":[{"assignments":[76094],"declarations":[{"constant":false,"id":76094,"mutability":"mutable","name":"router","nameLocation":"10271:6:159","nodeType":"VariableDeclaration","scope":76169,"src":"10255:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76093,"nodeType":"UserDefinedTypeName","pathNode":{"id":76092,"name":"Storage","nameLocations":["10255:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"10255:7:159"},"referencedDeclaration":73470,"src":"10255:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76097,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76095,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"10280:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10280:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10255:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":76105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76099,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"10312:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10319:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"10312:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76102,"indexExpression":{"id":76101,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76081,"src":"10325:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10312:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76103,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"10336:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":76104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10346:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"10336:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"10312:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":76106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10357:48:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""},"value":"code must be validated before program creation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""}],"id":76098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10304:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10304:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76108,"nodeType":"ExpressionStatement","src":"10304:102:159"},{"assignments":[76110],"declarations":[{"constant":false,"id":76110,"mutability":"mutable","name":"baseFeeValue","nameLocation":"10425:12:159","nodeType":"VariableDeclaration","scope":76169,"src":"10417:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76109,"name":"uint128","nodeType":"ElementaryTypeName","src":"10417:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76113,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76111,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75761,"src":"10440:7:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":76112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10440:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10417:32:159"},{"assignments":[76115],"declarations":[{"constant":false,"id":76115,"mutability":"mutable","name":"executableBalance","nameLocation":"10467:17:159","nodeType":"VariableDeclaration","scope":76169,"src":"10459:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76114,"name":"uint128","nodeType":"ElementaryTypeName","src":"10459:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76119,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76116,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76110,"src":"10487:12:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":76117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10502:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"10487:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10459:45:159"},{"assignments":[76121],"declarations":[{"constant":false,"id":76121,"mutability":"mutable","name":"totalValue","nameLocation":"10523:10:159","nodeType":"VariableDeclaration","scope":76169,"src":"10515:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76120,"name":"uint128","nodeType":"ElementaryTypeName","src":"10515:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76127,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76122,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76110,"src":"10536:12:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76123,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"10551:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10536:32:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76125,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"10571:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10536:41:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10515:62:159"},{"expression":{"arguments":[{"id":76129,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76121,"src":"10603:10:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76128,"name":"_retrieveValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76752,"src":"10588:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76131,"nodeType":"ExpressionStatement","src":"10588:26:159"},{"assignments":[76133],"declarations":[{"constant":false,"id":76133,"mutability":"mutable","name":"actorId","nameLocation":"10783:7:159","nodeType":"VariableDeclaration","scope":76169,"src":"10775:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76132,"name":"address","nodeType":"ElementaryTypeName","src":"10775:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76146,"initialValue":{"arguments":[{"expression":{"id":76136,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"10819:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10826:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"10819:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":76141,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76081,"src":"10866:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76142,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"10874:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76139,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10849:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10853:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"10849:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10849:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76138,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10839:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10839:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76134,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"10793:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41840_$","typeString":"type(library Clones)"}},"id":76135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10800:18:159","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41758,"src":"10793:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":76145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10793:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10775:106:159"},{"expression":{"id":76153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76147,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"10892:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10899:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"10892:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76151,"indexExpression":{"id":76149,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"10908:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10892:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76152,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76081,"src":"10919:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10892:33:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76154,"nodeType":"ExpressionStatement","src":"10892:33:159"},{"expression":{"id":76158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10935:22:159","subExpression":{"expression":{"id":76155,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"10935:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10942:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"10935:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76159,"nodeType":"ExpressionStatement","src":"10935:22:159"},{"eventCall":{"arguments":[{"id":76161,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"10988:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76162,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76081,"src":"10997:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76160,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73557,"src":"10973:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":76163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10973:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76164,"nodeType":"EmitStatement","src":"10968:36:159"},{"expression":{"components":[{"id":76165,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"11023:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76166,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76115,"src":"11032:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":76167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11022:28:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"functionReturnParameters":76091,"id":76168,"nodeType":"Return","src":"11015:35:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgramWithoutMessage","nameLocation":"10115:28:159","parameters":{"id":76086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76081,"mutability":"mutable","name":"codeId","nameLocation":"10152:6:159","nodeType":"VariableDeclaration","scope":76170,"src":"10144:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10144:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76083,"mutability":"mutable","name":"salt","nameLocation":"10168:4:159","nodeType":"VariableDeclaration","scope":76170,"src":"10160:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10160:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76085,"mutability":"mutable","name":"_value","nameLocation":"10182:6:159","nodeType":"VariableDeclaration","scope":76170,"src":"10174:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76084,"name":"uint128","nodeType":"ElementaryTypeName","src":"10174:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10143:46:159"},"returnParameters":{"id":76091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76170,"src":"10223:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76087,"name":"address","nodeType":"ElementaryTypeName","src":"10223:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76170,"src":"10232:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76089,"name":"uint128","nodeType":"ElementaryTypeName","src":"10232:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10222:18:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76259,"nodeType":"FunctionDefinition","src":"11063:844:159","nodes":[],"body":{"id":76258,"nodeType":"Block","src":"11152:755:159","nodes":[],"statements":[{"assignments":[76180],"declarations":[{"constant":false,"id":76180,"mutability":"mutable","name":"router","nameLocation":"11178:6:159","nodeType":"VariableDeclaration","scope":76258,"src":"11162:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76179,"nodeType":"UserDefinedTypeName","pathNode":{"id":76178,"name":"Storage","nameLocations":["11162:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"11162:7:159"},"referencedDeclaration":73470,"src":"11162:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76183,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76181,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"11187:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11187:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11162:38:159"},{"assignments":[76185],"declarations":[{"constant":false,"id":76185,"mutability":"mutable","name":"threshold","nameLocation":"11219:9:159","nodeType":"VariableDeclaration","scope":76258,"src":"11211:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76184,"name":"uint256","nodeType":"ElementaryTypeName","src":"11211:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76188,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76186,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75598,"src":"11231:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":76187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11231:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11211:41:159"},{"assignments":[76190],"declarations":[{"constant":false,"id":76190,"mutability":"mutable","name":"messageHash","nameLocation":"11271:11:159","nodeType":"VariableDeclaration","scope":76258,"src":"11263:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11263:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76201,"initialValue":{"arguments":[{"arguments":[{"id":76198,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76172,"src":"11348:8:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76196,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11331:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11335:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11331:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11331:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76193,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11293:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76862","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76862","typeString":"contract Router"}],"id":76192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11285:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76191,"name":"address","nodeType":"ElementaryTypeName","src":"11285:7:159","typeDescriptions":{}}},"id":76194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11285:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11299:31:159","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"11285:45:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":76200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11285:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11263:95:159"},{"assignments":[76203],"declarations":[{"constant":false,"id":76203,"mutability":"mutable","name":"validSignatures","nameLocation":"11376:15:159","nodeType":"VariableDeclaration","scope":76258,"src":"11368:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76202,"name":"uint256","nodeType":"ElementaryTypeName","src":"11368:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76205,"initialValue":{"hexValue":"30","id":76204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11394:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11368:27:159"},{"body":{"id":76249,"nodeType":"Block","src":"11454:368:159","statements":[{"assignments":[76218],"declarations":[{"constant":false,"id":76218,"mutability":"mutable","name":"signature","nameLocation":"11483:9:159","nodeType":"VariableDeclaration","scope":76249,"src":"11468:24:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76217,"name":"bytes","nodeType":"ElementaryTypeName","src":"11468:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76222,"initialValue":{"baseExpression":{"id":76219,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76175,"src":"11495:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76221,"indexExpression":{"id":76220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76207,"src":"11506:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11495:13:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11468:40:159"},{"assignments":[76224],"declarations":[{"constant":false,"id":76224,"mutability":"mutable","name":"validator","nameLocation":"11531:9:159","nodeType":"VariableDeclaration","scope":76249,"src":"11523:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76223,"name":"address","nodeType":"ElementaryTypeName","src":"11523:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76229,"initialValue":{"arguments":[{"id":76227,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76218,"src":"11563:9:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":76225,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"11543:11:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11555:7:159","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":45005,"src":"11543:19:159","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":76228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11523:50:159"},{"condition":{"baseExpression":{"expression":{"id":76230,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76180,"src":"11592:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11599:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"11592:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76233,"indexExpression":{"id":76232,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76224,"src":"11610:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11592:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76247,"nodeType":"Block","src":"11742:70:159","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":76243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11768:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"696e636f7272656374207369676e6174757265","id":76244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:21:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""},"value":"incorrect signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""}],"id":76242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11760:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11760:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76246,"nodeType":"ExpressionStatement","src":"11760:37:159"}]},"id":76248,"nodeType":"IfStatement","src":"11588:224:159","trueBody":{"id":76241,"nodeType":"Block","src":"11622:114:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11644:17:159","subExpression":{"id":76234,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76203,"src":"11646:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76236,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11665:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11644:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76240,"nodeType":"IfStatement","src":"11640:82:159","trueBody":{"id":76239,"nodeType":"Block","src":"11676:46:159","statements":[{"id":76238,"nodeType":"Break","src":"11698:5:159"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76210,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76207,"src":"11426:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76211,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76175,"src":"11430:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11441:6:159","memberName":"length","nodeType":"MemberAccess","src":"11430:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11426:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76250,"initializationExpression":{"assignments":[76207],"declarations":[{"constant":false,"id":76207,"mutability":"mutable","name":"i","nameLocation":"11419:1:159","nodeType":"VariableDeclaration","scope":76250,"src":"11411:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76206,"name":"uint256","nodeType":"ElementaryTypeName","src":"11411:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76209,"initialValue":{"hexValue":"30","id":76208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11423:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11411:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11449:3:159","subExpression":{"id":76214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76207,"src":"11449:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76216,"nodeType":"ExpressionStatement","src":"11449:3:159"},"nodeType":"ForStatement","src":"11406:416:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76252,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76203,"src":"11840:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76253,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11859:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11840:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656e6f7567682076616c6964207369676e617475726573","id":76255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11870:29:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""},"value":"not enough valid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""}],"id":76251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11832:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11832:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76257,"nodeType":"ExpressionStatement","src":"11832:68:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateSignatures","nameLocation":"11072:19:159","parameters":{"id":76176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76172,"mutability":"mutable","name":"dataHash","nameLocation":"11100:8:159","nodeType":"VariableDeclaration","scope":76259,"src":"11092:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11092:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76175,"mutability":"mutable","name":"signatures","nameLocation":"11127:10:159","nodeType":"VariableDeclaration","scope":76259,"src":"11110:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76173,"name":"bytes","nodeType":"ElementaryTypeName","src":"11110:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76174,"nodeType":"ArrayTypeName","src":"11110:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11091:47:159"},"returnParameters":{"id":76177,"nodeType":"ParameterList","parameters":[],"src":"11152:0:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76355,"nodeType":"FunctionDefinition","src":"11913:1244:159","nodes":[],"body":{"id":76354,"nodeType":"Block","src":"12003:1154:159","nodes":[],"statements":[{"assignments":[76269],"declarations":[{"constant":false,"id":76269,"mutability":"mutable","name":"router","nameLocation":"12029:6:159","nodeType":"VariableDeclaration","scope":76354,"src":"12013:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76268,"nodeType":"UserDefinedTypeName","pathNode":{"id":76267,"name":"Storage","nameLocations":["12013:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"12013:7:159"},"referencedDeclaration":73470,"src":"12013:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76270,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"12038:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12038:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12013:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76274,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76269,"src":"12083:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12090:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12083:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76276,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12117:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12133:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"12117:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12083:68:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d69746d656e742068617368","id":76279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12153:34:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""},"value":"invalid previous commitment hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""}],"id":76273,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12062:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12062:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76281,"nodeType":"ExpressionStatement","src":"12062:135:159"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":76284,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12234:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12250:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"12234:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76283,"name":"_isPredecessorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76399,"src":"12215:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12215:49:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f756e64","id":76287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12266:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""},"value":"allowed predecessor block not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""}],"id":76282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12207:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12207:97:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76289,"nodeType":"ExpressionStatement","src":"12207:97:159"},{"expression":{"id":76295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76290,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76269,"src":"12444:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12451:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12444:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76293,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12477:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12493:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"12477:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12444:58:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76296,"nodeType":"ExpressionStatement","src":"12444:58:159"},{"assignments":[76298],"declarations":[{"constant":false,"id":76298,"mutability":"mutable","name":"transitionsHashes","nameLocation":"12526:17:159","nodeType":"VariableDeclaration","scope":76354,"src":"12513:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76297,"name":"bytes","nodeType":"ElementaryTypeName","src":"12513:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76299,"nodeType":"VariableDeclarationStatement","src":"12513:30:159"},{"body":{"id":76335,"nodeType":"Block","src":"12619:255:159","statements":[{"assignments":[76314],"declarations":[{"constant":false,"id":76314,"mutability":"mutable","name":"stateTransition","nameLocation":"12658:15:159","nodeType":"VariableDeclaration","scope":76335,"src":"12633:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76313,"nodeType":"UserDefinedTypeName","pathNode":{"id":76312,"name":"StateTransition","nameLocations":["12633:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73507,"src":"12633:15:159"},"referencedDeclaration":73507,"src":"12633:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"id":76319,"initialValue":{"baseExpression":{"expression":{"id":76315,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12676:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12692:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73489,"src":"12676:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73507_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76318,"indexExpression":{"id":76317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76301,"src":"12704:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12676:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"12633:73:159"},{"assignments":[76321],"declarations":[{"constant":false,"id":76321,"mutability":"mutable","name":"transitionHash","nameLocation":"12729:14:159","nodeType":"VariableDeclaration","scope":76335,"src":"12721:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12721:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76325,"initialValue":{"arguments":[{"id":76323,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76314,"src":"12765:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}],"id":76322,"name":"_doStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76617,"src":"12746:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StateTransition_$73507_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.StateTransition calldata) returns (bytes32)"}},"id":76324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12746:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12721:60:159"},{"expression":{"id":76333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76326,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"12796:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76330,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"12829:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76331,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"12848:14:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76327,"name":"bytes","nodeType":"ElementaryTypeName","src":"12816:5:159","typeDescriptions":{}}},"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12822:6:159","memberName":"concat","nodeType":"MemberAccess","src":"12816:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12796:67:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76334,"nodeType":"ExpressionStatement","src":"12796:67:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76304,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76301,"src":"12574:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76305,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12578:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12594:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73489,"src":"12578:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73507_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12606:6:159","memberName":"length","nodeType":"MemberAccess","src":"12578:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12574:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76336,"initializationExpression":{"assignments":[76301],"declarations":[{"constant":false,"id":76301,"mutability":"mutable","name":"i","nameLocation":"12567:1:159","nodeType":"VariableDeclaration","scope":76336,"src":"12559:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76300,"name":"uint256","nodeType":"ElementaryTypeName","src":"12559:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76303,"initialValue":{"hexValue":"30","id":76302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12571:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12559:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12614:3:159","subExpression":{"id":76309,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76301,"src":"12614:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76311,"nodeType":"ExpressionStatement","src":"12614:3:159"},"nodeType":"ForStatement","src":"12554:320:159"},{"eventCall":{"arguments":[{"expression":{"id":76338,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12904:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12920:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"12904:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76337,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"12889:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":76340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12889:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76341,"nodeType":"EmitStatement","src":"12884:46:159"},{"expression":{"arguments":[{"expression":{"id":76343,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"12982:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12998:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"12982:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76345,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"13021:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13037:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"13021:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76347,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76262,"src":"13069:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13085:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"13069:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76350,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"13122:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76349,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13112:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13112:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76342,"name":"_blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76641,"src":"12948:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":76352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12948:202:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76266,"id":76353,"nodeType":"Return","src":"12941:209:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"11922:12:159","parameters":{"id":76263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76262,"mutability":"mutable","name":"blockCommitment","nameLocation":"11960:15:159","nodeType":"VariableDeclaration","scope":76355,"src":"11935:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76261,"nodeType":"UserDefinedTypeName","pathNode":{"id":76260,"name":"BlockCommitment","nameLocations":["11935:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73490,"src":"11935:15:159"},"referencedDeclaration":73490,"src":"11935:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"src":"11934:42:159"},"returnParameters":{"id":76266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76355,"src":"11994:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11994:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11993:9:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76399,"nodeType":"FunctionDefinition","src":"13163:338:159","nodes":[],"body":{"id":76398,"nodeType":"Block","src":"13233:268:159","nodes":[],"statements":[{"body":{"id":76394,"nodeType":"Block","src":"13290:183:159","statements":[{"assignments":[76376],"declarations":[{"constant":false,"id":76376,"mutability":"mutable","name":"ret","nameLocation":"13312:3:159","nodeType":"VariableDeclaration","scope":76394,"src":"13304:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13304:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76380,"initialValue":{"arguments":[{"id":76378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"13328:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76377,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"13318:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":76379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13318:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13304:26:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76381,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"13348:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76382,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76357,"src":"13355:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13348:11:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76387,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"13415:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13422:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13415:8:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76392,"nodeType":"IfStatement","src":"13411:52:159","trueBody":{"id":76391,"nodeType":"Block","src":"13425:38:159","statements":[{"id":76390,"nodeType":"Break","src":"13443:5:159"}]}},"id":76393,"nodeType":"IfStatement","src":"13344:119:159","trueBody":{"id":76386,"nodeType":"Block","src":"13361:44:159","statements":[{"expression":{"hexValue":"74727565","id":76384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13386:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":76361,"id":76385,"nodeType":"Return","src":"13379:11:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"13278:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13282:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13278:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76395,"initializationExpression":{"assignments":[76363],"declarations":[{"constant":false,"id":76363,"mutability":"mutable","name":"i","nameLocation":"13256:1:159","nodeType":"VariableDeclaration","scope":76395,"src":"13248:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76362,"name":"uint256","nodeType":"ElementaryTypeName","src":"13248:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76368,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76364,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13260:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":76365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13266:6:159","memberName":"number","nodeType":"MemberAccess","src":"13260:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76366,"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":"13260:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13248:28:159"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13285:3:159","subExpression":{"id":76372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"13285:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76374,"nodeType":"ExpressionStatement","src":"13285:3:159"},"nodeType":"ForStatement","src":"13243:230:159"},{"expression":{"hexValue":"66616c7365","id":76396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13489:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":76361,"id":76397,"nodeType":"Return","src":"13482:12:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPredecessorHash","nameLocation":"13172:18:159","parameters":{"id":76358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76357,"mutability":"mutable","name":"hash","nameLocation":"13199:4:159","nodeType":"VariableDeclaration","scope":76399,"src":"13191:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13191:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13190:14:159"},"returnParameters":{"id":76361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76399,"src":"13227:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76359,"name":"bool","nodeType":"ElementaryTypeName","src":"13227:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13226:6:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76617,"nodeType":"FunctionDefinition","src":"13507:2340:159","nodes":[],"body":{"id":76616,"nodeType":"Block","src":"13603:2244:159","nodes":[],"statements":[{"assignments":[76409],"declarations":[{"constant":false,"id":76409,"mutability":"mutable","name":"router","nameLocation":"13629:6:159","nodeType":"VariableDeclaration","scope":76616,"src":"13613:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76408,"nodeType":"UserDefinedTypeName","pathNode":{"id":76407,"name":"Storage","nameLocations":["13613:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"13613:7:159"},"referencedDeclaration":73470,"src":"13613:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76412,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76410,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"13638:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13638:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13613:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76414,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"13670:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13677:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"13670:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76418,"indexExpression":{"expression":{"id":76416,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"13686:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13702:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"13686:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13670:40:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13714:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13670:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":76421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13717:49:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""},"value":"couldn't perform transition for unknown program"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""}],"id":76413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13662:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13662:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76423,"nodeType":"ExpressionStatement","src":"13662:105:159"},{"assignments":[76426],"declarations":[{"constant":false,"id":76426,"mutability":"mutable","name":"wrappedVaraActor","nameLocation":"13791:16:159","nodeType":"VariableDeclaration","scope":76616,"src":"13778:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"},"typeName":{"id":76425,"nodeType":"UserDefinedTypeName","pathNode":{"id":76424,"name":"IWrappedVara","nameLocations":["13778:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":73765,"src":"13778:12:159"},"referencedDeclaration":73765,"src":"13778:12:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":76431,"initialValue":{"arguments":[{"expression":{"id":76428,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"13823:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13830:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"13823:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76427,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73765,"src":"13810:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73765_$","typeString":"type(contract IWrappedVara)"}},"id":76430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13810:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"13778:64:159"},{"expression":{"arguments":[{"expression":{"id":76435,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"13878:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13894:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"13878:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76437,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"13903:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13919:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"13903:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76432,"name":"wrappedVaraActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76426,"src":"13852:16:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"}},"id":76434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13869:8:159","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43107,"src":"13852:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":76439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13852:82:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76440,"nodeType":"ExpressionStatement","src":"13852:82:159"},{"assignments":[76443],"declarations":[{"constant":false,"id":76443,"mutability":"mutable","name":"mirrorActor","nameLocation":"13953:11:159","nodeType":"VariableDeclaration","scope":76616,"src":"13945:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":76442,"nodeType":"UserDefinedTypeName","pathNode":{"id":76441,"name":"IMirror","nameLocations":["13945:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"13945:7:159"},"referencedDeclaration":73387,"src":"13945:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":76448,"initialValue":{"arguments":[{"expression":{"id":76445,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"13975:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"13975:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76444,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"13967:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":76447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"13945:54:159"},{"assignments":[76450],"declarations":[{"constant":false,"id":76450,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"14023:16:159","nodeType":"VariableDeclaration","scope":76616,"src":"14010:29:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76449,"name":"bytes","nodeType":"ElementaryTypeName","src":"14010:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76451,"nodeType":"VariableDeclarationStatement","src":"14010:29:159"},{"body":{"id":76500,"nodeType":"Block","src":"14115:367:159","statements":[{"assignments":[76466],"declarations":[{"constant":false,"id":76466,"mutability":"mutable","name":"valueClaim","nameLocation":"14149:10:159","nodeType":"VariableDeclaration","scope":76500,"src":"14129:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim"},"typeName":{"id":76465,"nodeType":"UserDefinedTypeName","pathNode":{"id":76464,"name":"ValueClaim","nameLocations":["14129:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":73514,"src":"14129:10:159"},"referencedDeclaration":73514,"src":"14129:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_storage_ptr","typeString":"struct IRouter.ValueClaim"}},"visibility":"internal"}],"id":76471,"initialValue":{"baseExpression":{"expression":{"id":76467,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"14162:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14178:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73502,"src":"14162:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73514_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76470,"indexExpression":{"id":76469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"14190:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14162:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"14129:63:159"},{"expression":{"id":76487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76472,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76450,"src":"14207:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76476,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76450,"src":"14256:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":76479,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"14291:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14302:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73509,"src":"14291:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76481,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"14313:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14324:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73511,"src":"14313:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76483,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"14337:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14348:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14337:16:159","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":76477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14274:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"14274:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14274:80: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":76474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14226:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76473,"name":"bytes","nodeType":"ElementaryTypeName","src":"14226:5:159","typeDescriptions":{}}},"id":76475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14232:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14226:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14226:142:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14207:161:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76488,"nodeType":"ExpressionStatement","src":"14207:161:159"},{"expression":{"arguments":[{"expression":{"id":76492,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"14408:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14419:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73509,"src":"14408:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76494,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"14430:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14441:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73511,"src":"14430:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76496,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"14454:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14454:16:159","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":76489,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76443,"src":"14383:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14395:12:159","memberName":"valueClaimed","nodeType":"MemberAccess","referencedDeclaration":73368,"src":"14383:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128) external"}},"id":76498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14383:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76499,"nodeType":"ExpressionStatement","src":"14383:88:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"14070:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76457,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"14074:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14090:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73502,"src":"14074:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73514_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14102:6:159","memberName":"length","nodeType":"MemberAccess","src":"14074:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14070:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76501,"initializationExpression":{"assignments":[76453],"declarations":[{"constant":false,"id":76453,"mutability":"mutable","name":"i","nameLocation":"14063:1:159","nodeType":"VariableDeclaration","scope":76501,"src":"14055:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76452,"name":"uint256","nodeType":"ElementaryTypeName","src":"14055:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76455,"initialValue":{"hexValue":"30","id":76454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14067:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14055:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14110:3:159","subExpression":{"id":76461,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"14110:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76463,"nodeType":"ExpressionStatement","src":"14110:3:159"},"nodeType":"ForStatement","src":"14050:432:159"},{"assignments":[76503],"declarations":[{"constant":false,"id":76503,"mutability":"mutable","name":"messagesHashes","nameLocation":"14505:14:159","nodeType":"VariableDeclaration","scope":76616,"src":"14492:27:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76502,"name":"bytes","nodeType":"ElementaryTypeName","src":"14492:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76504,"nodeType":"VariableDeclarationStatement","src":"14492:27:159"},{"body":{"id":76574,"nodeType":"Block","src":"14592:764:159","statements":[{"assignments":[76519],"declarations":[{"constant":false,"id":76519,"mutability":"mutable","name":"outgoingMessage","nameLocation":"14631:15:159","nodeType":"VariableDeclaration","scope":76574,"src":"14606:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76518,"nodeType":"UserDefinedTypeName","pathNode":{"id":76517,"name":"OutgoingMessage","nameLocations":["14606:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73526,"src":"14606:15:159"},"referencedDeclaration":73526,"src":"14606:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"id":76524,"initialValue":{"baseExpression":{"expression":{"id":76520,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"14649:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14665:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73506,"src":"14649:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73526_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76523,"indexExpression":{"id":76522,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76506,"src":"14674:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14649:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"nodeType":"VariableDeclarationStatement","src":"14606:70:159"},{"expression":{"id":76534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76525,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"14691:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76529,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"14721:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":76531,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"14758:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}],"id":76530,"name":"_outgoingMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76700,"src":"14737:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutgoingMessage_$73526_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.OutgoingMessage calldata) pure returns (bytes32)"}},"id":76532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14737:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14708:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76526,"name":"bytes","nodeType":"ElementaryTypeName","src":"14708:5:159","typeDescriptions":{}}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14714:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14708:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14708:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14691:84:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76535,"nodeType":"ExpressionStatement","src":"14691:84:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76536,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"14794:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14810:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"14794:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14823:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73528,"src":"14794:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14829:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14794:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76572,"nodeType":"Block","src":"15029:317:159","statements":[{"expression":{"arguments":[{"expression":{"id":76558,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"15090:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15106:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"15090:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76560,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"15139:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15155:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"15139:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76562,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"15184:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15200:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15184:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76564,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"15227:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15243:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"15227:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15256:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73528,"src":"15227:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76567,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"15280:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15296:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"15280:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15309:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"15280:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76555,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76443,"src":"15047:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15059:9:159","memberName":"replySent","nodeType":"MemberAccess","referencedDeclaration":73359,"src":"15047:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (address,bytes memory,uint128,bytes32,bytes4) external"}},"id":76570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15047:284:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76571,"nodeType":"ExpressionStatement","src":"15047:284:159"}]},"id":76573,"nodeType":"IfStatement","src":"14790:556:159","trueBody":{"id":76554,"nodeType":"Block","src":"14832:191:159","statements":[{"expression":{"arguments":[{"expression":{"id":76544,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"14895:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14911:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73516,"src":"14895:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76546,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"14915:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14931:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"14915:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76548,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"14944:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14960:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"14944:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76550,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"14969:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14985:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"14969:21:159","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"}],"expression":{"id":76541,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76443,"src":"14850:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14862:11:159","memberName":"messageSent","nodeType":"MemberAccess","referencedDeclaration":73346,"src":"14850:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128) external"}},"id":76552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14850:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76553,"nodeType":"ExpressionStatement","src":"14850:158:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76506,"src":"14550:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76510,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"14554:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14570:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73506,"src":"14554:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73526_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14579:6:159","memberName":"length","nodeType":"MemberAccess","src":"14554:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14550:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76575,"initializationExpression":{"assignments":[76506],"declarations":[{"constant":false,"id":76506,"mutability":"mutable","name":"i","nameLocation":"14543:1:159","nodeType":"VariableDeclaration","scope":76575,"src":"14535:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76505,"name":"uint256","nodeType":"ElementaryTypeName","src":"14535:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76508,"initialValue":{"hexValue":"30","id":76507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14547:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14535:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14587:3:159","subExpression":{"id":76514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76506,"src":"14587:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76516,"nodeType":"ExpressionStatement","src":"14587:3:159"},"nodeType":"ForStatement","src":"14530:826:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76576,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15370:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15386:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15370:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15407: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":76579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15399:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76578,"name":"address","nodeType":"ElementaryTypeName","src":"15399:7:159","typeDescriptions":{}}},"id":76581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15399:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15370:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76591,"nodeType":"IfStatement","src":"15366:121:159","trueBody":{"id":76590,"nodeType":"Block","src":"15411:76:159","statements":[{"expression":{"arguments":[{"expression":{"id":76586,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15450:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15466:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15450:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":76583,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76443,"src":"15425:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15437:12:159","memberName":"setInheritor","nodeType":"MemberAccess","referencedDeclaration":73335,"src":"15425:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":76588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15425:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76589,"nodeType":"ExpressionStatement","src":"15425:51:159"}]}},{"expression":{"arguments":[{"expression":{"id":76595,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15521:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15537:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"15521:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76592,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76443,"src":"15497:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15509:11:159","memberName":"updateState","nodeType":"MemberAccess","referencedDeclaration":73330,"src":"15497:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":76597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15497:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76598,"nodeType":"ExpressionStatement","src":"15497:53:159"},{"expression":{"arguments":[{"expression":{"id":76600,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15602:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15618:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"15602:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76602,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15639:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15655:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"15639:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76604,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15681:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15697:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15681:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76606,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76402,"src":"15720:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15736:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"15720:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":76609,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76450,"src":"15774:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76608,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15764:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15764:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76612,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15815:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76611,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15805:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15805:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76599,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76671,"src":"15568:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,address,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":76614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15568:272:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76406,"id":76615,"nodeType":"Return","src":"15561:279:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_doStateTransition","nameLocation":"13516:18:159","parameters":{"id":76403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76402,"mutability":"mutable","name":"stateTransition","nameLocation":"13560:15:159","nodeType":"VariableDeclaration","scope":76617,"src":"13535:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76401,"nodeType":"UserDefinedTypeName","pathNode":{"id":76400,"name":"StateTransition","nameLocations":["13535:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73507,"src":"13535:15:159"},"referencedDeclaration":73507,"src":"13535:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"src":"13534:42:159"},"returnParameters":{"id":76406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76617,"src":"13594:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13594:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13593:9:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76641,"nodeType":"FunctionDefinition","src":"15853:320:159","nodes":[],"body":{"id":76640,"nodeType":"Block","src":"16053:120:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76633,"name":"blockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76619,"src":"16097:9:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76634,"name":"prevCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76621,"src":"16108:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76635,"name":"predBlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76623,"src":"16128:13:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76636,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76625,"src":"16143:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16080:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16084:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16080:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16080:85:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76630,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16070:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16070:96:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76629,"id":76639,"nodeType":"Return","src":"16063:103:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_blockCommitmentHash","nameLocation":"15862:20:159","parameters":{"id":76626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76619,"mutability":"mutable","name":"blockHash","nameLocation":"15900:9:159","nodeType":"VariableDeclaration","scope":76641,"src":"15892:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15892:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76621,"mutability":"mutable","name":"prevCommitmentHash","nameLocation":"15927:18:159","nodeType":"VariableDeclaration","scope":76641,"src":"15919:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15919:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76623,"mutability":"mutable","name":"predBlockHash","nameLocation":"15963:13:159","nodeType":"VariableDeclaration","scope":76641,"src":"15955:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15955:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76625,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"15994:21:159","nodeType":"VariableDeclaration","scope":76641,"src":"15986:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15986:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15882:139:159"},"returnParameters":{"id":76629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76641,"src":"16044:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16044:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16043:9:159"},"scope":76862,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76671,"nodeType":"FunctionDefinition","src":"16179:410:159","nodes":[],"body":{"id":76670,"nodeType":"Block","src":"16429:160:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76661,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76643,"src":"16486:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76662,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76645,"src":"16495:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76663,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76647,"src":"16509:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76664,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76649,"src":"16520:14:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":76665,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76651,"src":"16536:15:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76666,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"16553:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16469:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16473:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16469:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16469:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76658,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16446:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16446:136:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76657,"id":76669,"nodeType":"Return","src":"16439:143:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_stateTransitionHash","nameLocation":"16188:20:159","parameters":{"id":76654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76643,"mutability":"mutable","name":"actorId","nameLocation":"16226:7:159","nodeType":"VariableDeclaration","scope":76671,"src":"16218:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76642,"name":"address","nodeType":"ElementaryTypeName","src":"16218:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76645,"mutability":"mutable","name":"newStateHash","nameLocation":"16251:12:159","nodeType":"VariableDeclaration","scope":76671,"src":"16243:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16243:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76647,"mutability":"mutable","name":"inheritor","nameLocation":"16281:9:159","nodeType":"VariableDeclaration","scope":76671,"src":"16273:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76646,"name":"address","nodeType":"ElementaryTypeName","src":"16273:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76649,"mutability":"mutable","name":"valueToReceive","nameLocation":"16308:14:159","nodeType":"VariableDeclaration","scope":76671,"src":"16300:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76648,"name":"uint128","nodeType":"ElementaryTypeName","src":"16300:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76651,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"16340:15:159","nodeType":"VariableDeclaration","scope":76671,"src":"16332:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16332:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76653,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"16373:18:159","nodeType":"VariableDeclaration","scope":76671,"src":"16365:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16365:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16208:189:159"},"returnParameters":{"id":76657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76671,"src":"16420:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16420:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16419:9:159"},"scope":76862,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76700,"nodeType":"FunctionDefinition","src":"16595:451:159","nodes":[],"body":{"id":76699,"nodeType":"Block","src":"16698:348:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76682,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76674,"src":"16772:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16788:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73516,"src":"16772:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76684,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76674,"src":"16808:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16824:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"16808:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76686,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76674,"src":"16853:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16869:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"16853:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76688,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76674,"src":"16894:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16910:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"16894:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76690,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76674,"src":"16933:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16949:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"16933:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16962:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73528,"src":"16933:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76693,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76674,"src":"16982:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16998:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"16982:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17011:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"16982:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"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_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76680,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16738:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16742:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16738:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16738:291:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76679,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16715:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16715:324:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76678,"id":76698,"nodeType":"Return","src":"16708:331:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_outgoingMessageHash","nameLocation":"16604:20:159","parameters":{"id":76675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76674,"mutability":"mutable","name":"outgoingMessage","nameLocation":"16650:15:159","nodeType":"VariableDeclaration","scope":76700,"src":"16625:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76673,"nodeType":"UserDefinedTypeName","pathNode":{"id":76672,"name":"OutgoingMessage","nameLocations":["16625:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73526,"src":"16625:15:159"},"referencedDeclaration":73526,"src":"16625:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"src":"16624:42:159"},"returnParameters":{"id":76678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76700,"src":"16689:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16689:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16688:9:159"},"scope":76862,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76719,"nodeType":"FunctionDefinition","src":"17052:192:159","nodes":[],"body":{"id":76718,"nodeType":"Block","src":"17152:92:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76711,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76703,"src":"17196:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17211:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73476,"src":"17196:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76713,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76703,"src":"17215:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17230:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"17215:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":76709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17179:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17183:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17179:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17179:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76708,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17169:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17169:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76707,"id":76717,"nodeType":"Return","src":"17162:75:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_codeCommitmentHash","nameLocation":"17061:19:159","parameters":{"id":76704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76703,"mutability":"mutable","name":"codeCommitment","nameLocation":"17105:14:159","nodeType":"VariableDeclaration","scope":76719,"src":"17081:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":76702,"nodeType":"UserDefinedTypeName","pathNode":{"id":76701,"name":"CodeCommitment","nameLocations":["17081:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"17081:14:159"},"referencedDeclaration":73479,"src":"17081:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"src":"17080:40:159"},"returnParameters":{"id":76707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76719,"src":"17143:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17143:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17142:9:159"},"scope":76862,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76752,"nodeType":"FunctionDefinition","src":"17250:257:159","nodes":[],"body":{"id":76751,"nodeType":"Block","src":"17298:209:159","nodes":[],"statements":[{"assignments":[76726],"declarations":[{"constant":false,"id":76726,"mutability":"mutable","name":"router","nameLocation":"17324:6:159","nodeType":"VariableDeclaration","scope":76751,"src":"17308:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76725,"nodeType":"UserDefinedTypeName","pathNode":{"id":76724,"name":"Storage","nameLocations":["17308:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17308:7:159"},"referencedDeclaration":73470,"src":"17308:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76729,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76727,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"17333:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17333:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17308:38:159"},{"assignments":[76731],"declarations":[{"constant":false,"id":76731,"mutability":"mutable","name":"success","nameLocation":"17362:7:159","nodeType":"VariableDeclaration","scope":76751,"src":"17357:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76730,"name":"bool","nodeType":"ElementaryTypeName","src":"17357:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76745,"initialValue":{"arguments":[{"expression":{"id":76737,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17412:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":76738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17415:6:159","memberName":"origin","nodeType":"MemberAccess","src":"17412:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76741,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17431:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76862","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76862","typeString":"contract Router"}],"id":76740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17423:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76739,"name":"address","nodeType":"ElementaryTypeName","src":"17423:7:159","typeDescriptions":{}}},"id":76742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17423:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76743,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"17438:6:159","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":[{"expression":{"id":76733,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76726,"src":"17379:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17386:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"17379:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76732,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"17372:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$43140_$","typeString":"type(contract IERC20)"}},"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17372:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$43140","typeString":"contract IERC20"}},"id":76736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17399:12:159","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43139,"src":"17372:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17372:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17357:88:159"},{"expression":{"arguments":[{"id":76747,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76731,"src":"17464:7:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17473:26:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":76746,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17456:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17456:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76750,"nodeType":"ExpressionStatement","src":"17456:44:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValue","nameLocation":"17259:14:159","parameters":{"id":76722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76721,"mutability":"mutable","name":"_value","nameLocation":"17282:6:159","nodeType":"VariableDeclaration","scope":76752,"src":"17274:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76720,"name":"uint128","nodeType":"ElementaryTypeName","src":"17274:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17273:16:159"},"returnParameters":{"id":76723,"nodeType":"ParameterList","parameters":[],"src":"17298:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76793,"nodeType":"FunctionDefinition","src":"17513:317:159","nodes":[],"body":{"id":76792,"nodeType":"Block","src":"17549:281:159","nodes":[],"statements":[{"assignments":[76757],"declarations":[{"constant":false,"id":76757,"mutability":"mutable","name":"router","nameLocation":"17575:6:159","nodeType":"VariableDeclaration","scope":76792,"src":"17559:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76756,"nodeType":"UserDefinedTypeName","pathNode":{"id":76755,"name":"Storage","nameLocations":["17559:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17559:7:159"},"referencedDeclaration":73470,"src":"17559:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76760,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76758,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"17584:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17584:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17559:38:159"},{"body":{"id":76786,"nodeType":"Block","src":"17667:118:159","statements":[{"assignments":[76774],"declarations":[{"constant":false,"id":76774,"mutability":"mutable","name":"validator","nameLocation":"17689:9:159","nodeType":"VariableDeclaration","scope":76786,"src":"17681:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76773,"name":"address","nodeType":"ElementaryTypeName","src":"17681:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76779,"initialValue":{"baseExpression":{"expression":{"id":76775,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"17701:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17708:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17701:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76778,"indexExpression":{"id":76777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"17723:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17701:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17681:44:159"},{"expression":{"id":76784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17739:35:159","subExpression":{"baseExpression":{"expression":{"id":76780,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"17746:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17753:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"17746:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76783,"indexExpression":{"id":76782,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"17764:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17746:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76785,"nodeType":"ExpressionStatement","src":"17739:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76765,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"17628:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76766,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"17632:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17639:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17632:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17654:6:159","memberName":"length","nodeType":"MemberAccess","src":"17632:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17628:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76787,"initializationExpression":{"assignments":[76762],"declarations":[{"constant":false,"id":76762,"mutability":"mutable","name":"i","nameLocation":"17621:1:159","nodeType":"VariableDeclaration","scope":76787,"src":"17613:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76761,"name":"uint256","nodeType":"ElementaryTypeName","src":"17613:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76764,"initialValue":{"hexValue":"30","id":76763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17625:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17613:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17662:3:159","subExpression":{"id":76770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"17662:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76772,"nodeType":"ExpressionStatement","src":"17662:3:159"},"nodeType":"ForStatement","src":"17608:177:159"},{"expression":{"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17795:28:159","subExpression":{"expression":{"id":76788,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"17802:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17809:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17802:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76791,"nodeType":"ExpressionStatement","src":"17795:28:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_cleanValidators","nameLocation":"17522:16:159","parameters":{"id":76753,"nodeType":"ParameterList","parameters":[],"src":"17538:2:159"},"returnParameters":{"id":76754,"nodeType":"ParameterList","parameters":[],"src":"17549:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76848,"nodeType":"FunctionDefinition","src":"17836:442:159","nodes":[],"body":{"id":76847,"nodeType":"Block","src":"17903:375:159","nodes":[],"statements":[{"assignments":[76801],"declarations":[{"constant":false,"id":76801,"mutability":"mutable","name":"router","nameLocation":"17929:6:159","nodeType":"VariableDeclaration","scope":76847,"src":"17913:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76800,"nodeType":"UserDefinedTypeName","pathNode":{"id":76799,"name":"Storage","nameLocations":["17913:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17913:7:159"},"referencedDeclaration":73470,"src":"17913:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76804,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76802,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"17938:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17938:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17913:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76806,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76801,"src":"17970:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17977:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17970:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17992:6:159","memberName":"length","nodeType":"MemberAccess","src":"17970:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18002:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17970:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726576696f75732076616c696461746f727320776572656e27742072656d6f766564","id":76811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18005:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""},"value":"previous validators weren't removed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""}],"id":76805,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17962:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17962:81:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76813,"nodeType":"ExpressionStatement","src":"17962:81:159"},{"body":{"id":76839,"nodeType":"Block","src":"18108:113:159","statements":[{"assignments":[76826],"declarations":[{"constant":false,"id":76826,"mutability":"mutable","name":"validator","nameLocation":"18130:9:159","nodeType":"VariableDeclaration","scope":76839,"src":"18122:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76825,"name":"address","nodeType":"ElementaryTypeName","src":"18122:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76830,"initialValue":{"baseExpression":{"id":76827,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76796,"src":"18142:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76829,"indexExpression":{"id":76828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76815,"src":"18159:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18142:19:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18122:39:159"},{"expression":{"id":76837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76831,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76801,"src":"18175:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18182:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"18175:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76835,"indexExpression":{"id":76833,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76826,"src":"18193:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18175:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18206:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18175:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76838,"nodeType":"ExpressionStatement","src":"18175:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76815,"src":"18074:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76819,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76796,"src":"18078:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18095:6:159","memberName":"length","nodeType":"MemberAccess","src":"18078:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18074:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76840,"initializationExpression":{"assignments":[76815],"declarations":[{"constant":false,"id":76815,"mutability":"mutable","name":"i","nameLocation":"18067:1:159","nodeType":"VariableDeclaration","scope":76840,"src":"18059:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76814,"name":"uint256","nodeType":"ElementaryTypeName","src":"18059:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76817,"initialValue":{"hexValue":"30","id":76816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18071:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18059:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18103:3:159","subExpression":{"id":76822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76815,"src":"18103:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76824,"nodeType":"ExpressionStatement","src":"18103:3:159"},"nodeType":"ForStatement","src":"18054:167:159"},{"expression":{"id":76845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76801,"src":"18231:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18238:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18231:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76844,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76796,"src":"18255:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18231:40:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76846,"nodeType":"ExpressionStatement","src":"18231:40:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setValidators","nameLocation":"17845:14:159","parameters":{"id":76797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76796,"mutability":"mutable","name":"_validatorsArray","nameLocation":"17877:16:159","nodeType":"VariableDeclaration","scope":76848,"src":"17860:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76794,"name":"address","nodeType":"ElementaryTypeName","src":"17860:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76795,"nodeType":"ArrayTypeName","src":"17860:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"17859:35:159"},"returnParameters":{"id":76798,"nodeType":"ParameterList","parameters":[],"src":"17903:0:159"},"scope":76862,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76861,"nodeType":"FunctionDefinition","src":"18284:222:159","nodes":[],"body":{"id":76860,"nodeType":"Block","src":"18353:153:159","nodes":[],"statements":[{"assignments":[76855],"declarations":[{"constant":false,"id":76855,"mutability":"mutable","name":"slot","nameLocation":"18371:4:159","nodeType":"VariableDeclaration","scope":76860,"src":"18363:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76854,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18363:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76858,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76856,"name":"getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75354,"src":"18378:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":76857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18378:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18363:31:159"},{"AST":{"nativeSrc":"18457:43:159","nodeType":"YulBlock","src":"18457:43:159","statements":[{"nativeSrc":"18471:19:159","nodeType":"YulAssignment","src":"18471:19:159","value":{"name":"slot","nativeSrc":"18486:4:159","nodeType":"YulIdentifier","src":"18486:4:159"},"variableNames":[{"name":"router.slot","nativeSrc":"18471:11:159","nodeType":"YulIdentifier","src":"18471:11:159"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":76852,"isOffset":false,"isSlot":true,"src":"18471:11:159","suffix":"slot","valueSize":1},{"declaration":76855,"isOffset":false,"isSlot":false,"src":"18486:4:159","valueSize":1}],"id":76859,"nodeType":"InlineAssembly","src":"18448:52:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"18293:11:159","parameters":{"id":76849,"nodeType":"ParameterList","parameters":[],"src":"18304:2:159"},"returnParameters":{"id":76853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76852,"mutability":"mutable","name":"router","nameLocation":"18345:6:159","nodeType":"VariableDeclaration","scope":76861,"src":"18329:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76851,"nodeType":"UserDefinedTypeName","pathNode":{"id":76850,"name":"Storage","nameLocations":["18329:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"18329:7:159"},"referencedDeclaration":73470,"src":"18329:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"18328:24:159"},"scope":76862,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":75157,"name":"IRouter","nameLocations":["800:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73754,"src":"800:7:159"},"id":75158,"nodeType":"InheritanceSpecifier","src":"800:7:159"},{"baseName":{"id":75159,"name":"OwnableUpgradeable","nameLocations":["809:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"809:18:159"},"id":75160,"nodeType":"InheritanceSpecifier","src":"809:18:159"},{"baseName":{"id":75161,"name":"ReentrancyGuardTransient","nameLocations":["829:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":44045,"src":"829:24:159"},"id":75162,"nodeType":"InheritanceSpecifier","src":"829:24:159"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76862,44045,39387,40535,39641,73754],"name":"Router","nameLocation":"790:6:159","scope":76863,"usedErrors":[39223,39228,39404,39407,43912,43918,43989,44912,44917,44922],"usedEvents":[39234,39412,73536,73543,73550,73557,73560,73563,73568,73573]}],"license":"UNLICENSED"},"id":159} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"baseWeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRouter.CodeState"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"blockCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.BlockCommitment[]","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"prevCommitmentHash","type":"bytes32","internalType":"bytes32"},{"name":"predBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct IRouter.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct IRouter.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 IRouter.OutgoingMessage[]","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 IRouter.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCodes","inputs":[{"name":"codeCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProgram","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"decoderImplementation","type":"address","internalType":"address"},{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStorageSlot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_validatorsKeys","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastBlockCommitmentHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"mirror","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"program","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":"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":"blobTxHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseWeight","inputs":[{"name":"_baseWeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"_mirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStorageSlot","inputs":[{"name":"namespace","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setValuePerWeight","inputs":[{"name":"_valuePerWeight","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","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":"updateValidators","inputs":[{"name":"validatorsAddressArray","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorExists","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"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":"valuePerWeight","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BaseWeightChanged","inputs":[{"name":"baseWeight","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlockCommitted","inputs":[{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"id","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"},{"name":"blobTxHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"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":[],"anonymous":false},{"type":"event","name":"ValidatorsSetChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValuePerWeightChanged","inputs":[{"name":"valuePerWeight","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"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":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","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":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b6040516128fc90816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611c6e575080630834fecc14611c375780631c149d8a14611aef57806326637f6d146111c357806328e24b3d146111995780632dacfb691461116c5780633d43b4181461111a578063444d9172146110e25780635686cad514611030578063666d124c14610f345780636c2eb35014610d2c5780636ef25c3a14610d01578063715018a614610c9a57806378ee5dec14610c625780638028861a14610be55780638074b45514610b2657806388f50cf014610aee5780638da5cb5b14610aba5780638febbd5914610a6d5780639067088e14610a2557806396708226146109fc57806396a2ddfa146109cf578063a6bbbe1c14610924578063c13911e8146108de578063ca1e781914610867578063d3fd636414610831578063e71731e414610744578063e97d3eb31461051f578063ed612f8c146104f2578063edc87225146104d0578063efd81abc146104a3578063f2fde38b1461047d5763f8453e7c14610186575f80fd5b346104795760a03660031901126104795761019f611cc8565b602435906001600160a01b038216820361047957604435916001600160a01b038316830361047957606435926001600160a01b0384168403610479576084356001600160401b03811161047957366023820112156104795761020b903690602481600401359101611d85565b905f805160206128a78339815191525460ff8160401c1615946001600160401b03821680159081610471575b6001149081610467575b15908161045e575b5061044f5767ffffffffffffffff1982166001175f805160206128a78339815191525561028c9186610423575b5061027f61271f565b61028761271f565b611f61565b604094855161029b8782611cde565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102cf6121e0565b5190205f19810190811161040f5786519060208201908152602082526102f58883611cde565b60ff19915190201690815f80516020612887833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161040f57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b03199091161790556103b890612511565b6103be57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f805160206128a783398151915254165f805160206128a7833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f805160206128a7833981519152555f610276565b63f92ee8a960e01b5f5260045ffd5b9050155f610249565b303b159150610241565b879150610237565b5f80fd5b34610479576020366003190112610479576104a1610499611cc8565b6102876121e0565b005b34610479575f36600319011261047957602060055f80516020612887833981519152540154604051908152f35b34610479575f3660031901126104795760206104ea611f23565b604051908152f35b34610479575f36600319011261047957602060085f80516020612887833981519152540154604051908152f35b34610479576040366003190112610479576004356001600160401b0381116104795736602382011215610479578060040135906001600160401b038211610479573660248360061b83010111610479576024356001600160401b0381116104795761058f83913690600401611c98565b90925f8051602061288783398151915254906060925f9560098401945b86881015610733578760061b8401976105fe604460248b01359a01926105d184611f08565b60405160208101918d8352151560f81b6040820152602181526105f5604182611cde565b51902090611de9565b98805f528760205260ff60405f205416600381101561071f576001036106ca57610629600193611f08565b15610687577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600a8a016106768154611f15565b9055604051908152a25b01966105ac565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a2610680565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104a193506020815191012061205b565b34610479576020366003190112610479576004356001600160401b03811161047957610774903690600401611c98565b61077c6121e0565b5f805160206128878339815191525460078101906008015f5b81548110156107cc575f82815260208082208301546001600160a01b0316825284905260409020805460ff19169055600101610795565b5080545f8255915081610813575b6107ed6107e8368587611d85565b612511565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107da575f815560010161081e565b34610479575f3660031901126104795760206001600160401b0360065f8051602061288783398151915254015416604051908152f35b34610479575f3660031901126104795761089160085f805160206128878339815191525401611e75565b6040518091602082016020835281518091526020604084019201905f5b8181106108bc575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108ae565b346104795760203660031901126104795760095f8051602061288783398151915254016004355f5260205260ff60405f205416604051600382101561071f576020918152f35b34610479576020366003190112610479576004356001600160801b03811690818103610479577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916109776121e0565b5f8051602061288783398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610479575f366003190112610479576020600c5f80516020612887833981519152540154604051908152f35b34610479575f3660031901126104795760205f8051602061288783398151915254604051908152f35b3461047957602036600319011261047957610a3e611cc8565b600b5f8051602061288783398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461047957602036600319011261047957610a86611cc8565b60075f8051602061288783398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610479575f366003190112610479575f80516020612867833981519152546040516001600160a01b039091168152602090f35b34610479575f366003190112610479575f8051602061288783398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610479576044356001600160401b03811161047957610b51903690600401611d58565b90606435916001600160801b038316830361047957610b7583602435600435612233565b6001600160a01b0390911692909190833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b038183855af1918215610bda57602092610bca575b50604051908152f35b5f610bd491611cde565b82610bc1565b6040513d5f823e3d90fd5b34610479576020366003190112610479576004356001600160401b0381168091036104795760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c366121e0565b5f8051602061288783398151915254600601805467ffffffffffffffff191682179055604051908152a1005b34610479575f366003190112610479575f8051602061288783398151915254600201546040516001600160a01b039091168152602090f35b34610479575f36600319011261047957610cb26121e0565b5f8051602061286783398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610479575f366003190112610479576020610d1b611ec6565b6001600160801b0360405191168152f35b34610479575f36600319011261047957610d446121e0565b5f805160206128a78339815191525460ff8160401c168015610f20575b61044f5768ffffffffffffffffff191668010000000000000002175f805160206128a7833981519152555f80516020612887833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dc790600801611e75565b906040918251610dd78482611cde565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e0b6121e0565b5190205f19810190811161040f578351906020820190815260208252610e318583611cde565b60ff19915190201694855f80516020612887833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161040f574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610ef390612511565b60ff60401b195f805160206128a783398151915254165f805160206128a7833981519152555160028152a1005b5060026001600160401b0382161015610d61565b60a036600319011261047957610f48611cc8565b6044356024356064356001600160401b03811161047957610f6d903690600401611d58565b90608435946001600160801b038616860361047957610f8d868686612233565b949060018060a01b0316956040519060208201928352604082015260408152610fb7606082611cde565b519020853b1561047957604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610bda57611020575b50833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b5f61102a91611cde565b85610ff7565b34610479576020366003190112610479576004356001600160401b038111610479573660238201121561047957611071903690602481600401359101611d13565b6110796121e0565b602081519101205f19810190811161040f576040519060208201908152602082526110a5604083611cde565b9051902060ff19165f80516020612887833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610479575f366003190112610479575f8051602061288783398151915254600101546040516001600160a01b039091168152602090f35b3461047957602036600319011261047957611133611cc8565b61113b6121e0565b5f805160206128878339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610479575f36600319011261047957602060045f80516020612887833981519152540154604051908152f35b34610479575f3660031901126104795760205f805160206128878339815191525454604051908152f35b34610479576040366003190112610479576004356001600160401b038111610479576111f3903690600401611c98565b906024356001600160401b03811161047957611213903690600401611c98565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009291925c611ae057919260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9060605b81831015611aa9578260051b84013590607e19853603018212156104795760045f8051602061288783398151915254019384546020848801013503611a655760408387010135946112b786612652565b15611a1457838799949899969596013590556060935f978581890101905b6112e182828b01611fd2565b90508a1015611991576113008a6112fa84848d01611fd2565b90612007565b975f80516020612887833981519152546113198a612695565b6001600160a01b03165f908152600b820160205260409020541561193457600301546001600160801b03906020906001600160a01b031660448c5f611369606061136284612695565b93016126a9565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610bda57611908575b506001600160a01b036113b48a612695565b169b5f9160605b6113c860808d018d6126d5565b905084101561152f576113de60808d018d6126d5565b859195101561151b578f916114896020918261140081606087028b0101612695565b6114116040606088028c01016126a9565b6040519083820192606089028d013584526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152611457606482611cde565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611cde565b9461149b602060608402830101612695565b6114ac6040606085028401016126a9565b93803b15610479575f92836064926001600160801b0360405198899687956314503e5160e01b875260608b020135600487015260018060a01b031660248601521660448401525af1918215610bda5760019261150b575b5001926113bb565b5f61151591611cde565b5f611503565b634e487b7160e01b5f52603260045260245ffd5b9891979d9b9394959692509b989b60605f5b61154e60a08e018e611fd2565b905081101561179b5790818e9493928e60a0810161156b91611fd2565b6115759291612007565b602081019561158387612695565b9660408301946115938685612029565b9099906115a2606087016126a9565b9a60a087019b6115b18d61270a565b8360405194859460208601978c3589526001600160601b03199060601b16604087015260548601378301916001600160801b03199060801b1660548301526080890135606483015263ffffffff60e01b1660848201520360540160148101825260340161161e9082611cde565b51902061162a91611de9565b9760808401356116db575061164161164891612695565b9483612029565b919094611657606085016126a9565b823b15610479575f9485916001600160801b036116a56040519a8b988997889663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e18565b9116606483015203925af1918215610bda576001926116cb575b505b0192909192611541565b5f6116d591611cde565b5f6116bf565b949291906116eb6116f291612695565b9383612029565b9092611709611703606083016126a9565b9761270a565b94833b1561047957611755975f96608088946001600160801b036040519c8d9a8b998a9863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e18565b94166044860152013560648401526001600160e01b031916608483015203925af1918215610bda5760019261178b575b506116c1565b5f61179591611cde565b5f611785565b509d97949892969a90959d9c919c9b939b604082019160018060a01b036117c184612695565b166118b1575b602081013591863b15610479575f80976024604051809a8193638ea59e1d60e01b83528860048401525af1958615610bda57600197611892976118a1575b50611824606061181d61181786612695565b97612695565b94016126a9565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b16606884015260788301526098820152609881526105f560b882611cde565b960198949990999691966112d5565b5f6118ab91611cde565b5f611805565b6118ba83612695565b863b1561047957604051630959112b60e11b81526001600160a01b0390911660048201525f81602481838b5af18015610bda576118f8575b506117c7565b5f61190291611cde565b5f6118f2565b6119289060203d811161192d575b6119208183611cde565b8101906126bd565b6113a2565b503d611916565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b919050611a0893929850600194959996997fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051858c01358152a16020815191012060405191602080840194808c013586528b010135604084015260608301526080820152608081526105f560a082611cde565b94019193949094611267565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b8486611abb926020815191012061205b565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610479576040366003190112610479576024356004358115801590611c2d575b15611be85760095f80516020612887833981519152540190805f528160205260ff60405f205416600381101561071f57611b8a577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611b10565b34610479575f366003190112610479576020610d1b6001600160801b0360065f8051602061288783398151915254015460401c1690565b34610479575f36600319011261047957602090600a5f805160206128878339815191525401548152f35b9181601f84011215610479578235916001600160401b038311610479576020808501948460051b01011161047957565b600435906001600160a01b038216820361047957565b90601f801991011681019081106001600160401b03821117611cff57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611cff5760405191611d3c601f8201601f191660200184611cde565b829481845281830111610479578281602093845f960137010152565b9181601f84011215610479578235916001600160401b038311610479576020838186019501011161047957565b9092916001600160401b038411611cff578360051b916020604051611dac82860182611cde565b809681520192810191821161047957915b818310611dc957505050565b82356001600160a01b038116810361047957815260209283019201611dbd565b602080611e16928195946040519682889351918291018585015e8201908382015203018085520183611cde565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611e686001600160801b0393606095859360018060a01b03168852608060208901526080880191611e18565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611ea4575050611e1692500383611cde565b84546001600160a01b0316835260019485019487945060209093019201611e8f565b5f8051602061288783398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361040f5790565b3580151581036104795790565b5f19811461040f5760010190565b5f8051602061288783398151915254600560088201549101549081810291818304149015171561040f5761270f810180911161040f57612710900490565b6001600160a01b03168015611fbf575f8051602061286783398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b903590601e198136030182121561047957018035906001600160401b03821161047957602001918160051b3603831361047957565b919081101561151b5760051b8101359060be1981360301821215610479570190565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191813603831361047957565b905f805160206128878339815191525490612074611f23565b9260405190602082019081526020825261208f604083611cde565b6120cb603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611cde565b5190205f9260070191835b868510156121d45761210c6121036120fd6120f68860051b860186612029565b3691611d13565b8561274a565b90929192612784565b6001600160a01b03165f9081526020859052604090205460ff16156121995761213490611f15565b9385851461214557600101936120d6565b505050509091505b1061215457565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b9495505050505061214d565b5f80516020612867833981519152546001600160a01b0316330361220057565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161040f57565b9291925f805160206128878339815191525491815f526009830160205260ff60405f205416600381101561071f576002036124b557612270611ec6565b60038401805460405163313ce56760e01b81529297919290602090829060049082906001600160a01b03165afa8015610bda575f90612478575b60ff915016604d811161040f5760646122dc6020936122d76001600160801b038095600a0a16809c612213565b612213565b93546040516323b872dd60e01b8152326004820152306024820152929094166044830152909283919082905f906001600160a01b03165af1908115610bda575f91612459575b5015612414576e5af43d82803e903d91602b57fd5bf3600284015491604051602081019185835260408201526040815261235d606082611cde565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b038316908115612405577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123f88154611f15565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612472915060203d60201161192d576119208183611cde565b5f612322565b506020813d6020116124ad575b8161249260209383611cde565b81010312610479575160ff811681036104795760ff906122aa565b3d9150612485565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f80516020612887833981519152549060088201908154612601579091600701905f5b815181101561257357600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff1916600190811790915501612534565b5080519291506001600160401b038311611cff57680100000000000000008311611cff5781548383558084106125db575b50602001905f5260205f205f5b8381106125be5750505050565b82516001600160a01b0316818301556020909201916001016125b1565b825f528360205f2091820191015b8181106125f657506125a4565b5f81556001016125e9565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161040f57805b61266b575b505f9150565b804083810361267c57506001925050565b1561269057801561040f575f190180612660565b612665565b356001600160a01b03811681036104795790565b356001600160801b03811681036104795790565b90816020910312610479575180151581036104795790565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191606082023603831361047957565b356001600160e01b0319811681036104795790565b60ff5f805160206128a78339815191525460401c161561273b57565b631afcd79f60e31b5f5260045ffd5b815191906041830361277a576127739250602082015190606060408401519301515f1a906127e4565b9192909190565b50505f9160029190565b600481101561071f5780612796575050565b600181036127ad5763f645eedf60e01b5f5260045ffd5b600281036127c8575063fce698f760e01b5f5260045260245ffd5b6003146127d25750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161285b579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610bda575f516001600160a01b0381161561285157905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220356dfca6b7e8752b769eb287a9dc01c4782cebe1d54c3ba55beacc02543be1ef64736f6c634300081a0033","sourceMap":"879:17830:159:-:0;;;;;;;8837:64:26;879:17830:159;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;879:17830:159;;7985:34:26;7981:146;;-1:-1:-1;879:17830:159;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;879:17830:159;-1:-1:-1;;;;;879:17830:159;;;8837:64:26;879:17830:159;;;8087:29:26;;879:17830:159;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;879:17830:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081627a32e714611c6e575080630834fecc14611c375780631c149d8a14611aef57806326637f6d146111c357806328e24b3d146111995780632dacfb691461116c5780633d43b4181461111a578063444d9172146110e25780635686cad514611030578063666d124c14610f345780636c2eb35014610d2c5780636ef25c3a14610d01578063715018a614610c9a57806378ee5dec14610c625780638028861a14610be55780638074b45514610b2657806388f50cf014610aee5780638da5cb5b14610aba5780638febbd5914610a6d5780639067088e14610a2557806396708226146109fc57806396a2ddfa146109cf578063a6bbbe1c14610924578063c13911e8146108de578063ca1e781914610867578063d3fd636414610831578063e71731e414610744578063e97d3eb31461051f578063ed612f8c146104f2578063edc87225146104d0578063efd81abc146104a3578063f2fde38b1461047d5763f8453e7c14610186575f80fd5b346104795760a03660031901126104795761019f611cc8565b602435906001600160a01b038216820361047957604435916001600160a01b038316830361047957606435926001600160a01b0384168403610479576084356001600160401b03811161047957366023820112156104795761020b903690602481600401359101611d85565b905f805160206128a78339815191525460ff8160401c1615946001600160401b03821680159081610471575b6001149081610467575b15908161045e575b5061044f5767ffffffffffffffff1982166001175f805160206128a78339815191525561028c9186610423575b5061027f61271f565b61028761271f565b611f61565b604094855161029b8782611cde565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526102cf6121e0565b5190205f19810190811161040f5786519060208201908152602082526102f58883611cde565b60ff19915190201690815f80516020612887833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f1943019243841161040f57924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b03199091161790556103b890612511565b6103be57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f805160206128a783398151915254165f805160206128a7833981519152555160018152a1005b634e487b7160e01b5f52601160045260245ffd5b68ffffffffffffffffff191668010000000000000001175f805160206128a7833981519152555f610276565b63f92ee8a960e01b5f5260045ffd5b9050155f610249565b303b159150610241565b879150610237565b5f80fd5b34610479576020366003190112610479576104a1610499611cc8565b6102876121e0565b005b34610479575f36600319011261047957602060055f80516020612887833981519152540154604051908152f35b34610479575f3660031901126104795760206104ea611f23565b604051908152f35b34610479575f36600319011261047957602060085f80516020612887833981519152540154604051908152f35b34610479576040366003190112610479576004356001600160401b0381116104795736602382011215610479578060040135906001600160401b038211610479573660248360061b83010111610479576024356001600160401b0381116104795761058f83913690600401611c98565b90925f8051602061288783398151915254906060925f9560098401945b86881015610733578760061b8401976105fe604460248b01359a01926105d184611f08565b60405160208101918d8352151560f81b6040820152602181526105f5604182611cde565b51902090611de9565b98805f528760205260ff60405f205416600381101561071f576001036106ca57610629600193611f08565b15610687577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960208285935f528a825260405f20600260ff19825416179055600a8a016106768154611f15565b9055604051908152a25b01966105ac565b7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020825f9384528a825260408420805460ff19169055604051908152a2610680565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b6104a193506020815191012061205b565b34610479576020366003190112610479576004356001600160401b03811161047957610774903690600401611c98565b61077c6121e0565b5f805160206128878339815191525460078101906008015f5b81548110156107cc575f82815260208082208301546001600160a01b0316825284905260409020805460ff19169055600101610795565b5080545f8255915081610813575b6107ed6107e8368587611d85565b612511565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f515f80a1005b5f5260205f20908101905b818110156107da575f815560010161081e565b34610479575f3660031901126104795760206001600160401b0360065f8051602061288783398151915254015416604051908152f35b34610479575f3660031901126104795761089160085f805160206128878339815191525401611e75565b6040518091602082016020835281518091526020604084019201905f5b8181106108bc575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108ae565b346104795760203660031901126104795760095f8051602061288783398151915254016004355f5260205260ff60405f205416604051600382101561071f576020918152f35b34610479576020366003190112610479576004356001600160801b03811690818103610479577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916109776121e0565b5f8051602061288783398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a1005b34610479575f366003190112610479576020600c5f80516020612887833981519152540154604051908152f35b34610479575f3660031901126104795760205f8051602061288783398151915254604051908152f35b3461047957602036600319011261047957610a3e611cc8565b600b5f8051602061288783398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b3461047957602036600319011261047957610a86611cc8565b60075f8051602061288783398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610479575f366003190112610479575f80516020612867833981519152546040516001600160a01b039091168152602090f35b34610479575f366003190112610479575f8051602061288783398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610479576044356001600160401b03811161047957610b51903690600401611d58565b90606435916001600160801b038316830361047957610b7583602435600435612233565b6001600160a01b0390911692909190833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b038183855af1918215610bda57602092610bca575b50604051908152f35b5f610bd491611cde565b82610bc1565b6040513d5f823e3d90fd5b34610479576020366003190112610479576004356001600160401b0381168091036104795760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c791610c366121e0565b5f8051602061288783398151915254600601805467ffffffffffffffff191682179055604051908152a1005b34610479575f366003190112610479575f8051602061288783398151915254600201546040516001600160a01b039091168152602090f35b34610479575f36600319011261047957610cb26121e0565b5f8051602061286783398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610479575f366003190112610479576020610d1b611ec6565b6001600160801b0360405191168152f35b34610479575f36600319011261047957610d446121e0565b5f805160206128a78339815191525460ff8160401c168015610f20575b61044f5768ffffffffffffffffff191668010000000000000002175f805160206128a7833981519152555f80516020612887833981519152546001810154600282015460038301546001600160a01b0390811693918116921690610dc790600801611e75565b906040918251610dd78482611cde565b6017815260208101907f726f757465722e73746f726167652e526f7574657256320000000000000000008252610e0b6121e0565b5190205f19810190811161040f578351906020820190815260208252610e318583611cde565b60ff19915190201694855f80516020612887833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a15f19430143811161040f574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160209190610ef390612511565b60ff60401b195f805160206128a783398151915254165f805160206128a7833981519152555160028152a1005b5060026001600160401b0382161015610d61565b60a036600319011261047957610f48611cc8565b6044356024356064356001600160401b03811161047957610f6d903690600401611d58565b90608435946001600160801b038616860361047957610f8d868686612233565b949060018060a01b0316956040519060208201928352604082015260408152610fb7606082611cde565b519020853b1561047957604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f8160448183895af18015610bda57611020575b50833b1561047957610bac5f9360405196879485946306f0ee9760e51b86523260048701611e38565b5f61102a91611cde565b85610ff7565b34610479576020366003190112610479576004356001600160401b038111610479573660238201121561047957611071903690602481600401359101611d13565b6110796121e0565b602081519101205f19810190811161040f576040519060208201908152602082526110a5604083611cde565b9051902060ff19165f80516020612887833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b34610479575f366003190112610479575f8051602061288783398151915254600101546040516001600160a01b039091168152602090f35b3461047957602036600319011261047957611133611cc8565b61113b6121e0565b5f805160206128878339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34610479575f36600319011261047957602060045f80516020612887833981519152540154604051908152f35b34610479575f3660031901126104795760205f805160206128878339815191525454604051908152f35b34610479576040366003190112610479576004356001600160401b038111610479576111f3903690600401611c98565b906024356001600160401b03811161047957611213903690600401611c98565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f009291925c611ae057919260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f9060605b81831015611aa9578260051b84013590607e19853603018212156104795760045f8051602061288783398151915254019384546020848801013503611a655760408387010135946112b786612652565b15611a1457838799949899969596013590556060935f978581890101905b6112e182828b01611fd2565b90508a1015611991576113008a6112fa84848d01611fd2565b90612007565b975f80516020612887833981519152546113198a612695565b6001600160a01b03165f908152600b820160205260409020541561193457600301546001600160801b03906020906001600160a01b031660448c5f611369606061136284612695565b93016126a9565b60405163a9059cbb60e01b81526001600160a01b0390931660048401529590951660248201529384928391905af18015610bda57611908575b506001600160a01b036113b48a612695565b169b5f9160605b6113c860808d018d6126d5565b905084101561152f576113de60808d018d6126d5565b859195101561151b578f916114896020918261140081606087028b0101612695565b6114116040606088028c01016126a9565b6040519083820192606089028d013584526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152611457606482611cde565b6040519584879551918291018587015e840190838201905f8252519283915e01015f815203601f198101835282611cde565b9461149b602060608402830101612695565b6114ac6040606085028401016126a9565b93803b15610479575f92836064926001600160801b0360405198899687956314503e5160e01b875260608b020135600487015260018060a01b031660248601521660448401525af1918215610bda5760019261150b575b5001926113bb565b5f61151591611cde565b5f611503565b634e487b7160e01b5f52603260045260245ffd5b9891979d9b9394959692509b989b60605f5b61154e60a08e018e611fd2565b905081101561179b5790818e9493928e60a0810161156b91611fd2565b6115759291612007565b602081019561158387612695565b9660408301946115938685612029565b9099906115a2606087016126a9565b9a60a087019b6115b18d61270a565b8360405194859460208601978c3589526001600160601b03199060601b16604087015260548601378301916001600160801b03199060801b1660548301526080890135606483015263ffffffff60e01b1660848201520360540160148101825260340161161e9082611cde565b51902061162a91611de9565b9760808401356116db575061164161164891612695565b9483612029565b919094611657606085016126a9565b823b15610479575f9485916001600160801b036116a56040519a8b988997889663c2df600960e01b885235600488015260018060a01b03166024870152608060448701526084860191611e18565b9116606483015203925af1918215610bda576001926116cb575b505b0192909192611541565b5f6116d591611cde565b5f6116bf565b949291906116eb6116f291612695565b9383612029565b9092611709611703606083016126a9565b9761270a565b94833b1561047957611755975f96608088946001600160801b036040519c8d9a8b998a9863c78bde7760e01b8a5260018060a01b031660048a015260a060248a015260a4890191611e18565b94166044860152013560648401526001600160e01b031916608483015203925af1918215610bda5760019261178b575b506116c1565b5f61179591611cde565b5f611785565b509d97949892969a90959d9c919c9b939b604082019160018060a01b036117c184612695565b166118b1575b602081013591863b15610479575f80976024604051809a8193638ea59e1d60e01b83528860048401525af1958615610bda57600197611892976118a1575b50611824606061181d61181786612695565b97612695565b94016126a9565b90602081519101209160208151910120926040519460208601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b16606884015260788301526098820152609881526105f560b882611cde565b960198949990999691966112d5565b5f6118ab91611cde565b5f611805565b6118ba83612695565b863b1561047957604051630959112b60e11b81526001600160a01b0390911660048201525f81602481838b5af18015610bda576118f8575b506117c7565b5f61190291611cde565b5f6118f2565b6119289060203d811161192d575b6119208183611cde565b8101906126bd565b6113a2565b503d611916565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b919050611a0893929850600194959996997fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051858c01358152a16020815191012060405191602080840194808c013586528b010135604084015260608301526080820152608081526105f560a082611cde565b94019193949094611267565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b8486611abb926020815191012061205b565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b34610479576040366003190112610479576024356004358115801590611c2d575b15611be85760095f80516020612887833981519152540190805f528160205260ff60405f205416600381101561071f57611b8a577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611b10565b34610479575f366003190112610479576020610d1b6001600160801b0360065f8051602061288783398151915254015460401c1690565b34610479575f36600319011261047957602090600a5f805160206128878339815191525401548152f35b9181601f84011215610479578235916001600160401b038311610479576020808501948460051b01011161047957565b600435906001600160a01b038216820361047957565b90601f801991011681019081106001600160401b03821117611cff57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611cff5760405191611d3c601f8201601f191660200184611cde565b829481845281830111610479578281602093845f960137010152565b9181601f84011215610479578235916001600160401b038311610479576020838186019501011161047957565b9092916001600160401b038411611cff578360051b916020604051611dac82860182611cde565b809681520192810191821161047957915b818310611dc957505050565b82356001600160a01b038116810361047957815260209283019201611dbd565b602080611e16928195946040519682889351918291018585015e8201908382015203018085520183611cde565b565b908060209392818452848401375f828201840152601f01601f1916010190565b93959490611e686001600160801b0393606095859360018060a01b03168852608060208901526080880191611e18565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b818110611ea4575050611e1692500383611cde565b84546001600160a01b0316835260019485019487945060209093019201611e8f565b5f8051602061288783398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b03811690810361040f5790565b3580151581036104795790565b5f19811461040f5760010190565b5f8051602061288783398151915254600560088201549101549081810291818304149015171561040f5761270f810180911161040f57612710900490565b6001600160a01b03168015611fbf575f8051602061286783398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b903590601e198136030182121561047957018035906001600160401b03821161047957602001918160051b3603831361047957565b919081101561151b5760051b8101359060be1981360301821215610479570190565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191813603831361047957565b905f805160206128878339815191525490612074611f23565b9260405190602082019081526020825261208f604083611cde565b6120cb603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611cde565b5190205f9260070191835b868510156121d45761210c6121036120fd6120f68860051b860186612029565b3691611d13565b8561274a565b90929192612784565b6001600160a01b03165f9081526020859052604090205460ff16156121995761213490611f15565b9385851461214557600101936120d6565b505050509091505b1061215457565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b9495505050505061214d565b5f80516020612867833981519152546001600160a01b0316330361220057565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b03821161040f57565b9291925f805160206128878339815191525491815f526009830160205260ff60405f205416600381101561071f576002036124b557612270611ec6565b60038401805460405163313ce56760e01b81529297919290602090829060049082906001600160a01b03165afa8015610bda575f90612478575b60ff915016604d811161040f5760646122dc6020936122d76001600160801b038095600a0a16809c612213565b612213565b93546040516323b872dd60e01b8152326004820152306024820152929094166044830152909283919082905f906001600160a01b03165af1908115610bda575f91612459575b5015612414576e5af43d82803e903d91602b57fd5bf3600284015491604051602081019185835260408201526040815261235d606082611cde565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b038316908115612405577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123f88154611f15565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612472915060203d60201161192d576119208183611cde565b5f612322565b506020813d6020116124ad575b8161249260209383611cde565b81010312610479575160ff811681036104795760ff906122aa565b3d9150612485565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f80516020612887833981519152549060088201908154612601579091600701905f5b815181101561257357600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff1916600190811790915501612534565b5080519291506001600160401b038311611cff57680100000000000000008311611cff5781548383558084106125db575b50602001905f5260205f205f5b8381106125be5750505050565b82516001600160a01b0316818301556020909201916001016125b1565b825f528360205f2091820191015b8181106125f657506125a4565b5f81556001016125e9565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b905f19430143811161040f57805b61266b575b505f9150565b804083810361267c57506001925050565b1561269057801561040f575f190180612660565b612665565b356001600160a01b03811681036104795790565b356001600160801b03811681036104795790565b90816020910312610479575180151581036104795790565b903590601e198136030182121561047957018035906001600160401b0382116104795760200191606082023603831361047957565b356001600160e01b0319811681036104795790565b60ff5f805160206128a78339815191525460401c161561273b57565b631afcd79f60e31b5f5260045ffd5b815191906041830361277a576127739250602082015190606060408401519301515f1a906127e4565b9192909190565b50505f9160029190565b600481101561071f5780612796575050565b600181036127ad5763f645eedf60e01b5f5260045ffd5b600281036127c8575063fce698f760e01b5f5260045260245ffd5b6003146127d25750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161285b579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610bda575f516001600160a01b0381161561285157905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220356dfca6b7e8752b769eb287a9dc01c4782cebe1d54c3ba55beacc02543be1ef64736f6c634300081a0033","sourceMap":"879:17830:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;879:17830:159;;;;;;4301:16:26;879:17830:159;-1:-1:-1;;;;;879:17830:159;;4726:16:26;;:34;;;;879:17830:159;4805:1:26;4790:16;:50;;;;879:17830:159;4855:13:26;:30;;;;879:17830:159;4851:91:26;;;-1:-1:-1;;879:17830:159;;4805:1:26;879:17830:159;-1:-1:-1;;;;;;;;;;;879:17830:159;6961:1:26;;879:17830:159;4979:67:26;;879:17830:159;6893:76:26;;;:::i;:::-;;;:::i;:::-;6961:1;:::i;:::-;879:17830:159;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;879:17830:159;3042:27;;-1:-1:-1;;879:17830:159;;;;;;;;;3023:52;879:17830;3023:52;;879:17830;;;;3023:52;;;;;;:::i;:::-;879:17830;;;;3013:63;;:89;1170:66;;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:17830;3182:20;;879:17830;;1742:12;879:17830;1742:12;;879:17830;;;;1732:27;;1170:66;;4805:1:26;1769:13:159;;879:17830;;-1:-1:-1;;;;;;879:17830:159;;;-1:-1:-1;;;;;879:17830:159;;;;;;;1802:18;;;879:17830;;;;;;;;;;;;;;1845:18;;;879:17830;;;;;;;;;;;;;1924:4;1888:33;;;1170:66;1966:17;;;;;879:17830;;;-1:-1:-1;;;;;;879:17830:159;;;;;;2060:15;;;:::i;:::-;5066:101:26;;879:17830:159;5066:101:26;879:17830:159;5142:14:26;879:17830:159;-1:-1:-1;;;879:17830:159;-1:-1:-1;;;;;;;;;;;879:17830:159;;-1:-1:-1;;;;;;;;;;;879:17830:159;;4805:1:26;879:17830:159;;5142:14:26;879:17830:159;;;;;;;;;;;;;4979:67:26;-1:-1:-1;;879:17830:159;;;-1:-1:-1;;;;;;;;;;;879:17830:159;4979:67:26;;;4851:91;6498:23;;;879:17830:159;4908:23:26;879:17830:159;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;879:17830:159;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;2357:1:25;879:17830:159;;:::i;:::-;2303:62:25;;:::i;2357:1::-;879:17830:159;;;;;;;-1:-1:-1;;879:17830:159;;;;;5016:33;-1:-1:-1;;;;;;;;;;;879:17830:159;5016:33;879:17830;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;5394:21;-1:-1:-1;;;;;;;;;;;879:17830:159;5394:21;879:17830;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;879:17830:159;8601:34;879:17830;8651:13;879:17830;9026:12;;;;8646:824;8699:3;8666:31;;;;;;879:17830;;;;;;8900:55;17416:20;879:17830;;;;17416:20;;;;;;:::i;:::-;879:17830;;;17380:57;;879:17830;;;;;;;;;;;;;17380:57;;;;;;:::i;:::-;879:17830;17370:68;;8900:55;;:::i;:::-;879:17830;;;;;;;;;;;;;;;;;;;;9026:53;879:17830;;9142:20;879:17830;9142:20;;:::i;:::-;;;;9294:30;879:17830;;;;;;;;;;;;9205:19;879:17830;;;;;;;;9242:26;;;:28;879:17830;;9242:28;:::i;:::-;1170:66;;879:17830;;;;;9294:30;9138:322;879:17830;8651:13;;;9138:322;9414:31;879:17830;;;;;;;;;;;;;;;;;;;;;;;;9414:31;9138:322;;879:17830;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;;;8666:31;9534:10;8666:31;;879:17830;;;;;9500:32;9534:10;:::i;879:17830::-;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17830:159;17947:17;;;;17833:21;;879:17830;17863:3;879:17830;;17829:32;;;;;879:17830;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;17814:13;;17829:32;-1:-1:-1;879:17830:159;;;;;;-1:-1:-1;879:17830:159;;;17809:177;5955:38;879:17830;;;;;:::i;:::-;5955:38;:::i;:::-;6009:22;879:17830;6009:22;;879:17830;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;-1:-1:-1;;;;;6208:17:159;-1:-1:-1;;;;;;;;;;;879:17830:159;6208:17;879:17830;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;5738:21;-1:-1:-1;;;;;;;;;;;879:17830:159;5738:21;879:17830;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;4480:12;-1:-1:-1;;;;;;;;;;;879:17830:159;4480:12;879:17830;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;6787:38;2303:62:25;879:17830:159;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17830:159;6732:21;;879:17830;;-1:-1:-1;;879:17830:159;;;;;;;;;;;;;;6787:38;879:17830;;;;;;;-1:-1:-1;;879:17830:159;;;;;4633:20;-1:-1:-1;;;;;;;;;;;879:17830:159;4633:20;879:17830;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;:::i;:::-;4801:15;-1:-1:-1;;;;;;;;;;;879:17830:159;4801:15;:24;879:17830;;;;;;-1:-1:-1;879:17830:159;;;;;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;:::i;:::-;5571:17;-1:-1:-1;;;;;;;;;;;879:17830:159;5571:17;:28;879:17830;;;;;;-1:-1:-1;879:17830:159;;;;;;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;3665:18;;879:17830;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;7659:50;879:17830;;;;;7659:50;:::i;:::-;-1:-1:-1;;;;;879:17830:159;;;;;;;7720:75;;;;;;879:17830;;;;;;;;;;;;7720:75;;7749:9;879:17830;7720:75;;;:::i;:::-;;;;;;;;;;;;879:17830;7720:75;;;879:17830;;;;;;;;7720:75;879:17830;7720:75;;;:::i;:::-;;;;;879:17830;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;6405:30;2303:62:25;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17830:159;6358:17;;879:17830;;-1:-1:-1;;879:17830:159;;;;;;;;;;6405:30;879:17830;;;;;;;-1:-1:-1;;879:17830:159;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;3814:18;;879:17830;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17830:159;;-1:-1:-1;;;;;;879:17830:159;;;;;;;-1:-1:-1;;;;;879:17830:159;3975:40:25;879:17830:159;;3975:40:25;879:17830:159;;;;;;;-1:-1:-1;;879:17830:159;;;;;;;:::i;:::-;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17830:159;;;;;;6431:44:26;;;;879:17830:159;6427:105:26;;-1:-1:-1;;879:17830:159;;;-1:-1:-1;;;;;;;;;;;879:17830:159;-1:-1:-1;;;;;;;;;;;879:17830:159;;2227:16;;879:17830;2144:1;2276:21;;879:17830;2330:21;;;879:17830;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;2396:24;;879:17830;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:25;;:::i;:::-;879:17830:159;3042:27;;-1:-1:-1;;879:17830:159;;;;;;;;;3023:52;879:17830;3023:52;;879:17830;;;;3023:52;;;;;;:::i;:::-;879:17830;;;;3013:63;;:89;1170:66;;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:17830;3182:20;;879:17830;;2567:12;879:17830;2567:12;879:17830;;;;2557:27;1170:66;;6593:4:26;2594:13:159;;879:17830;;-1:-1:-1;;;;;;879:17830:159;;;-1:-1:-1;;;;;879:17830:159;;;;;;;2144:1;2627:18;;879:17830;;;;;;;;;;;;;;2330:21;2670:18;;;879:17830;;;;;;;;;;;;;;;;6656:20:26;;879:17830:159;;-1:-1:-1;2728:15:159;;;:::i;:::-;-1:-1:-1;;;879:17830:159;-1:-1:-1;;;;;;;;;;;879:17830:159;;-1:-1:-1;;;;;;;;;;;879:17830:159;;2144:1;879:17830;;6656:20:26;879:17830:159;6431:44:26;879:17830:159;2144:1;-1:-1:-1;;;;;879:17830:159;;6450:25:26;;6431:44;;879:17830:159;;;-1:-1:-1;;879:17830:159;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;8106:50;;;;;:::i;:::-;879:17830;;;;;;;;;;;8281:30;879:17830;8281:30;;879:17830;;;;;;;;8281:30;;;879:17830;8281:30;;:::i;:::-;879:17830;8271:41;;8219:94;;;;;879:17830;;-1:-1:-1;;;8219:94:159;;-1:-1:-1;;;;;879:17830:159;;;;8219:94;;879:17830;;;;;-1:-1:-1;879:17830:159;;;-1:-1:-1;8219:94:159;;;;;;;;;879:17830;8324:73;;;;;;;879:17830;;;;;;;;;;;;8324:73;;8351:9;879:17830;8324:73;;;:::i;8219:94::-;879:17830;8219:94;;;:::i;:::-;;;;879:17830;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;879:17830:159;;;;;3042:27;879:17830;;;;;;;;;;;3023:52;879:17830;3023:52;;879:17830;;;;3023:52;;;879:17830;3023:52;;:::i;:::-;879:17830;;3013:63;;-1:-1:-1;;3013:89:159;-1:-1:-1;;;;;;;;;;;1170:66:159;3182:20;879:17830;;3182:20;879:17830;;;;;;;-1:-1:-1;;879:17830:159;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;;3958:13;879:17830;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;879:17830:159;4097:13;;879:17830;;-1:-1:-1;;;;;;879:17830:159;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;3504:30;879:17830;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;;;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;:::i;:::-;516:66:62;7368:53:64;;;;1292:93:62;;7628:52:64;;1503:4:62;516:66;7628:52:64;879:17830:159;;;9811:3;9777:32;;;;;;879:17830;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;12284:30;879:17830;;;;;;;12318:34;879:17830;12284:68;879:17830;;;;;;12435:29;879:17830;12416:49;;;;:::i;:::-;879:17830;;;;;;;;;;;;;;1170:66;;879:17830;12760:13;879:17830;;;;;;12779:27;12755:320;12815:3;12779:27;879:17830;;;;12779:27;:::i;:::-;12775:38;;;;;;;12877:30;879:17830;12877:27;879:17830;;;;12877:27;:::i;:::-;:30;;:::i;:::-;879:17830;-1:-1:-1;;;;;;;;;;;879:17830:159;13887:23;;;:::i;:::-;-1:-1:-1;;;;;879:17830:159;;;;;13871:15;;;879:17830;;;;;;13871:45;879:17830;;14024:18;;879:17830;-1:-1:-1;;;;;879:17830:159;;;-1:-1:-1;;;;;879:17830:159;;14079:23;879:17830;14104:30;879:17830;14079:23;;;:::i;:::-;14104:30;;;:::i;:::-;879:17830;;-1:-1:-1;;;14053:82:159;;-1:-1:-1;;;;;879:17830:159;;;;14053:82;;879:17830;;;;;;;;;;;;;;-1:-1:-1;14053:82:159;;;;;;;;12815:3;-1:-1:-1;;;;;;14176:23:159;;;:::i;:::-;879:17830;;;;;14311:3;14275:27;;;;;;:::i;:::-;14271:38;;;;;;;14363:27;14275;;;14363;;:::i;:::-;879:17830;;;;;;;;;;;;;14514:22;879:17830;;;;;;14514:22;;:::i;:::-;14538:16;879:17830;;;;;;14538:16;;:::i;:::-;879:17830;;14475:80;;;;879:17830;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;14275:27;879:17830;;;;;;;14475:80;;;;;;:::i;:::-;879:17830;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14475:80;;879:17830;;;;;;:::i;:::-;;14631:22;879:17830;;;;;;14514:22;14631;:::i;:::-;14655:16;879:17830;;;;;;14538:16;14655;:::i;:::-;14584:88;;;;;;879:17830;;;14475:80;879:17830;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;14584:88;;879:17830;;;;;;14584:88;;879:17830;;;;;;;;;;;;;;;;14584:88;;;;;;;1503:4:62;14584:88:159;;;14311:3;;879:17830;14256:13;;;14584:88;879:17830;14584:88;;;:::i;:::-;;;;879:17830;;;;;;;;;;;;14271:38;;;;;;;;;;;;;;;879:17830;;14788:3;14755:24;;;;;;:::i;:::-;14751:35;;;;;;;14755:24;;;;;;;;;;14850;;;:::i;:::-;:27;;;;:::i;:::-;879:17830;17009:27;;;;;;:::i;:::-;17054:23;879:17830;17054:23;;;;;;;:::i;:::-;17095:21;;;;879:17830;17095:21;;;:::i;:::-;17183:33;14755:24;17183:33;;;;;;:::i;:::-;879:17830;;;16939:291;;;879:17830;16939:291;;879:17830;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;14275:27;879:17830;;;;;;14275:27;17134:28;;879:17830;14475:80;879:17830;;;;;;;;;;;16939:291;879:17830;16939:291;;;;;;879:17830;16939:291;;;;;:::i;:::-;879:17830;16916:324;;14909:67;;;:::i;:::-;17134:28;14275:27;17134:28;;879:17830;14275:27;;15116;;15145:23;15116:27;;:::i;:::-;15145:23;;;:::i;:::-;17095:21;;;15170;879:17830;17095:21;;15170;:::i;:::-;15051:158;;;;;879:17830;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;15051:158;;879:17830;;15051:158;;879:17830;;;;;;;;;;;14275:27;879:17830;;;;;;;;;:::i;:::-;;;14475:80;879:17830;;;15051:158;;;;;;;;;1503:4:62;15051:158:159;;;14991:556;;;879:17830;14736:13;;;;;;15051:158;879:17830;15051:158;;;:::i;:::-;;;;14991:556;15291:27;;;;;15340:23;15291:27;;:::i;:::-;15340:23;;;:::i;:::-;17095:21;;15481:33;15385:21;879:17830;17095:21;;15385;:::i;:::-;15481:33;;:::i;:::-;15248:284;;;;;;879:17830;;;;14275:27;879:17830;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;15248:284;;879:17830;;;;;;;15248:284;;879:17830;14755:24;879:17830;;;;;;;;;:::i;:::-;;;;;;;17134:28;879:17830;14475:80;879:17830;;;-1:-1:-1;;;;;;879:17830:159;;;;;15248:284;;;;;;;;;1503:4:62;15248:284:159;;;14991:556;;;;15248:284;879:17830;15248:284;;;:::i;:::-;;;;14751:35;;;;;;;;;;;;;;;;;;879:17830;15571:25;;879:17830;;;;;;15571:25;;;:::i;:::-;879:17830;15567:121;;14731:826;879:17830;15722:28;;879:17830;15698:53;;;;;;879:17830;;;;;;;;;;;;;15698:53;;;879:17830;15698:53;;879:17830;15698:53;;;;;;;1503:4:62;15698:53:159;13017:47;15698:53;;;14731:826;15803:23;15921:30;879:17830;15882:25;15803:23;;;:::i;:::-;15882:25;;:::i;:::-;14104:30;;15921;:::i;:::-;879:17830;;;;;;15965:27;879:17830;;;;;;16006:25;879:17830;;;16670:103;879:17830;16670:103;;879:17830;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;14275:27;879:17830;;;;;;;;;;;;;;;16670:103;;;;;;:::i;13017:47::-;12815:3;879:17830;12760:13;;;;;;;;;;15698:53;879:17830;15698:53;;;:::i;:::-;;;;15567:121;15651:25;;;:::i;:::-;15626:51;;;;;879:17830;;-1:-1:-1;;;15626:51:159;;-1:-1:-1;;;;;879:17830:159;;;;15626:51;;879:17830;-1:-1:-1;879:17830:159;;;-1:-1:-1;15626:51:159;;;;;;;;;15567:121;;;;15626:51;879:17830;15626:51;;;:::i;:::-;;;;14053:82;;;879:17830;14053:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;879:17830;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14475:80:159;879:17830;;;;;;12775:38;;;;10011:57;12775:38;;;;1503:4:62;12775:38:159;;;;;13090:41;879:17830;;;;;;;;;13090:41;879:17830;;;;;13313:28;879:17830;;16281:85;879:17830;16281:85;;;879:17830;;;;;;;;;12318:34;879:17830;;;;;;;;;14275:27;879:17830;;;14275:27;16281:85;;;14755:24;16281:85;;:::i;10011:57::-;9811:3;879:17830;9762:13;;;;;;;879:17830;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;14475:80:159;879:17830;;;;;;;14475:80;879:17830;;;;;;;;;;;;;;;;;;;;;;;9777:32;;;10144:10;9777:32;879:17830;;;;;10109:33;10144:10;:::i;:::-;879:17830;516:66:62;7628:52:64;879:17830:159;1292:93:62;1344:30;;;879:17830:159;1344:30:62;879:17830:159;;1344:30:62;879:17830:159;;;;;;-1:-1:-1;;879:17830:159;;;;;;;;7081:15;;;;;:35;;879:17830;;;;7217:12;-1:-1:-1;;;;;;;;;;;879:17830:159;7217:12;879:17830;;;;;;;;;;;;;;;;;;;;;7390:43;879:17830;;;;;;;;;;;7345:29;879:17830;;;;;;;;;;;;;;;;;7390:43;879:17830;;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;;;;7081:35;7100:11;879:17830;7100:11;:16;;7081:35;;879:17830;;;;;;-1:-1:-1;;879:17830:159;;;;;;-1:-1:-1;;;;;6569:21:159;-1:-1:-1;;;;;;;;;;;879:17830:159;6569:21;879:17830;;;;6448:149;;879:17830;;;;;;-1:-1:-1;;879:17830:159;;;;;;4309:26;-1:-1:-1;;;;;;;;;;;879:17830:159;4309:26;879:17830;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;879:17830:159;;;;;;:::o;:::-;;;14475:80;;879:17830;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;:::o;:::-;;;;-1:-1:-1;879:17830:159;;;;;-1:-1:-1;879:17830:159;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;14475:80;879:17830;;-1:-1:-1;;879:17830:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;;;;;;;-1:-1:-1;;879:17830:159;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;-1:-1:-1;879:17830:159;;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;-1:-1:-1;879:17830:159;;;;;;;;6838:113;-1:-1:-1;;;;;;;;;;;879:17830:159;6208:17;;879:17830;-1:-1:-1;;;;;879:17830:159;;;-1:-1:-1;;;;;879:17830:159;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;6838:113;:::o;879:17830::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;879:17830:159;;;;;;;:::o;5062:204::-;-1:-1:-1;;;;;;;;;;;879:17830:159;5016:33;5394:21;;;879:17830;5016:33;;879:17830;;;;;;;;;;;;;;;;5246:4;879:17830;;;;;;;5254:5;879:17830;;5062:204;:::o;3405:215:25:-;-1:-1:-1;;;;;879:17830:159;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;879:17830:159;;-1:-1:-1;;;;;;879:17830:159;;;;;;;-1:-1:-1;;;;;879:17830:159;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;879:17830:159;;3509:1:25;3534:31;879:17830:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;:::o;11264:844::-;;-1:-1:-1;;;;;;;;;;;879:17830:159;11432:21;;;:::i;:::-;879:17830;;;11532:26;;;;879:17830;;;11532:26;;;;879:17830;11532:26;;:::i;:::-;2858:45:68;879:17830:159;;;2858:45:68;;11532:26:159;2858:45:68;;879:17830:159;;;;;;11494:4;879:17830;;;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;;;2858:45:68;;14475:80:159;;2858:45:68;;;;;;:::i;:::-;879:17830:159;2848:56:68;;-1:-1:-1;;11793:17:159;;;-1:-1:-1;11650:3:159;11627:21;;;;;;3915:8:66;3859:27;879:17830:159;;;;;;;;;:::i;:::-;;;;:::i;:::-;3859:27:66;;:::i;:::-;3915:8;;;;;:::i;:::-;-1:-1:-1;;;;;879:17830:159;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;;;11845:17;;;:::i;:::-;:30;;;;11841:82;;879:17830;;11612:13;;;11841:82;11899:5;;;;;;;11607:416;12041:28;879:17830;;11264:844::o;879:17830::-;;;-1:-1:-1;;;879:17830:159;;11532:26;879:17830;;;;;;;;;;;;;;;;;11789:224;879:17830;;-1:-1:-1;;;879:17830:159;;11532:26;879:17830;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;11627:21;;;;;;;;;;2658:162:25;-1:-1:-1;;;;;;;;;;;879:17830:159;-1:-1:-1;;;;;879:17830:159;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;879:17830:159;;-1:-1:-1;2763:40:25;879:17830:159;;-1:-1:-1;;;;;879:17830:159;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;:::o;10204:1054::-;;;;-1:-1:-1;;;;;;;;;;;879:17830:159;;;-1:-1:-1;879:17830:159;10410:12;;;879:17830;;;;-1:-1:-1;879:17830:159;;;;;;;;;10434:19;10410:43;879:17830;;10538:9;;:::i;:::-;879:17830;10674:18;;879:17830;;;;-1:-1:-1;;;10659:45:159;;10674:18;;;;879:17830;;;;;10659:45;;879:17830;;-1:-1:-1;;;;;879:17830:159;10659:45;;;;;;-1:-1:-1;10659:45:159;;;10204:1054;879:17830;;;;;;;;;17573:73;10737:41;879:17830;;10737:32;-1:-1:-1;;;;;879:17830:159;;;;;10737:32;;;:::i;:::-;:41;:::i;:::-;879:17830;;;;-1:-1:-1;;;17573:73:159;;17613:9;10659:45;17573:73;;879:17830;17632:4;879:17830;;;;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;-1:-1:-1;;;;;;;879:17830:159;17573:73;;;;;;;-1:-1:-1;17573:73:159;;;10204:1054;879:17830;;;;3743:569:44;10434:19:159;11020:18;;879:17830;;;;;11050:30;;879:17830;;;;;;;;;11050:30;;;879:17830;11050:30;;:::i;:::-;879:17830;11040:41;;3743:569:44;;;;;;;;-1:-1:-1;3743:569:44;;;;;;;;879:17830:159;3743:569:44;;10410:12:159;-1:-1:-1;3743:569:44;879:17830:159;-1:-1:-1;;;;;879:17830:159;;;4325:22:44;;4321:85;;11174:31:159;11093:24;11136:20;879:17830;11093:24;879:17830;-1:-1:-1;879:17830:159;11093:15;;;879:17830;;;;-1:-1:-1;879:17830:159;1170:66;11136:20;:22;879:17830;;11136:22;:::i;:::-;1170:66;;879:17830;;;;;11174:31;11216:35;10204:1054;:::o;4321:85:44:-;4370:25;;;-1:-1:-1;4370:25:44;10659:45:159;-1:-1:-1;4370:25:44;879:17830:159;;;-1:-1:-1;;;879:17830:159;;;10659:45;879:17830;;;;;;;;;;;;;17573:73;;879:17830;17573:73;;;;879:17830;17573:73;879:17830;17573:73;;;;;;;:::i;:::-;;;;10659:45;;879:17830;10659:45;;879:17830;10659:45;;;;;;879:17830;10659:45;;;:::i;:::-;;;879:17830;;;;;;;;;;;;;10659:45;;;;;;-1:-1:-1;10659:45:159;;879:17830;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;18037:442;-1:-1:-1;;;;;;;;;;;879:17830:159;18171:21;;;;879:17830;;;;;18260:13;;18376:17;;;-1:-1:-1;18304:3:159;879:17830;;18275:27;;;;;879:17830;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;-1:-1:-1;879:17830:159;;;;;;;;;;;;-1:-1:-1;;879:17830:159;;;;;;;;;18260:13;;18275:27;-1:-1:-1;879:17830:159;;;18275:27;-1:-1:-1;;;;;;879:17830:159;;;;;;;;;;;;;;;;;;;18255:167;879:17830;;;;-1:-1:-1;879:17830:159;;-1:-1:-1;879:17830:159;-1:-1:-1;879:17830:159;;;;;;18037:442;;;;:::o;879:17830::-;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;;;-1:-1:-1;879:17830:159;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:17830:159;;;;;;;13364:338;;879:17830;;13461:12;879:17830;13461:12;879:17830;;;;13444:230;13479:5;;;13444:230;-1:-1:-1;879:17830:159;;-1:-1:-1;13364:338:159:o;13486:3::-;13519:12;;13549:11;;;;;-1:-1:-1;13476:1:159;;-1:-1:-1;;13580:11:159:o;13545:119::-;13616:8;13612:52;;879:17830;;;;-1:-1:-1;;879:17830:159;;13449:28;;13612:52;13644:5;;879:17830;;-1:-1:-1;;;;;879:17830:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;879:17830:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;879:17830:159;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;879:17830:159;;;;;;;:::o;7084:141:26:-;879:17830:159;-1:-1:-1;;;;;;;;;;;879:17830:159;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;2129:766:66;879:17830:159;;;2129:766:66;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:66;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;7196:532::-;879:17830:159;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;879:17830:159;7378:38:66;;879:17830:159;;7439:23:66;;;7291:20;7439:23;879:17830:159;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;879:17830:159;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;879:17830:159;;;7291:20:66;7679:32;5140:1530;;;6199:66;6186:79;;6182:164;;879:17830:159;;;;;;-1:-1:-1;879:17830:159;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;879:17830:159;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o","linkReferences":{}},"methodIdentifiers":{"baseFee()":"6ef25c3a","baseWeight()":"d3fd6364","codeState(bytes32)":"c13911e8","commitBlocks((bytes32,bytes32,bytes32,(address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"26637f6d","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","createProgram(bytes32,bytes32,bytes,uint128)":"8074b455","createProgramWithDecoder(address,bytes32,bytes32,bytes,uint128)":"666d124c","genesisBlockHash()":"28e24b3d","getStorageSlot()":"96708226","initialize(address,address,address,address,address[])":"f8453e7c","lastBlockCommitmentHash()":"2dacfb69","mirror()":"444d9172","mirrorProxy()":"78ee5dec","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setBaseWeight(uint64)":"8028861a","setMirror(address)":"3d43b418","setStorageSlot(string)":"5686cad5","setValuePerWeight(uint128)":"a6bbbe1c","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","updateValidators(address[])":"e71731e4","validatedCodesCount()":"007a32e7","validatorExists(address)":"8febbd59","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","valuePerWeight()":"0834fecc","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"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\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"baseWeight\",\"type\":\"uint64\"}],\"name\":\"BaseWeightChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"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\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"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\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ValidatorsSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"ValuePerWeightChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum IRouter.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevCommitmentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predBlockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct IRouter.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 IRouter.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct IRouter.OutgoingMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.BlockCommitment[]\",\"name\":\"blockCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct IRouter.CodeCommitment[]\",\"name\":\"codeCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"decoderImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStorageSlot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_validatorsKeys\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirror\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"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\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_baseWeight\",\"type\":\"uint64\"}],\"name\":\"setBaseWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"namespace\",\"type\":\"string\"}],\"name\":\"setStorageSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"setValuePerWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"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\":\"validatorsAddressArray\",\"type\":\"address[]\"}],\"name\":\"updateValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"validatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"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\":\"valuePerWeight\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"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.\"}]},\"events\":{\"BaseWeightChanged(uint64)\":{\"details\":\"Emitted when the tx's base weight is changed. NOTE: It's event for USERS: it informs about new value of commission for each message sending. NOTE: It's event for NODES: it requires to update commission in programs execution parameters.\"},\"BlockCommitted(bytes32)\":{\"details\":\"Emitted when a new state transitions are applied. NOTE: It's event for USERS: it informs about new block outcome committed.\"},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"Emitted when a code, previously requested to be validated, gets validated. NOTE: It's event for USERS: it informs about validation results of previously requested code.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"Emitted when a new code validation request submitted. NOTE: It's event for NODES: it requires to download and validate code from blob.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"Emitted when a new program created. NOTE: It's event for USERS: it informs about new program creation and it's availability on Ethereum. NOTE: It's event for NODES: it requires to create associated gear program in local storage.\"},\"StorageSlotChanged()\":{\"details\":\"Emitted when the storage slot is changed. NOTE: It's event for USERS: it informs about router being wiped and all programs and codes deletion. NOTE: It's event for NODES: it requires to clean the local storage.\"},\"ValidatorsSetChanged()\":{\"details\":\"Emitted when the validators set is changed. NOTE: It's event for USERS: it informs about validators rotation. NOTE: It's event for NODES: it requires to update authorities that sign outcomes.\"},\"ValuePerWeightChanged(uint128)\":{\"details\":\"Emitted when the value per executable weight is changed. NOTE: It's event for USERS: it informs about new conversion rate between weight and it's WVara price. NOTE: It's event for NODES: it requires to update conversion rate in programs execution parameters.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"programCodeId(address)\":{\"details\":\"Returns bytes32(0) in case of inexistent program.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"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-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/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/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"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/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58\",\"dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601\",\"dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xb16e44a8917c8292c47779fdcb6a8fa23a394258370375d83774e324c159a8d2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://356609e9f3ed19904806ba235c5fd247171754eea0f479d826558a9a7908cf05\",\"dweb:/ipfs/QmXPnJzKpk6AhqXjd2cKgReTvnZULcn2tdH2RiU8avLP7P\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0x6e2bbb0f9226ee6174a405e59777676ce97028719c3a9d3a68681b1523252956\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7fbfc4096f10ff2e9aa8cd6e24cffadc66348f6881bc2b21e9e292923e6f31aa\",\"dweb:/ipfs/QmNZWaiiWjTBwXB9B2wc5MnbQsFEVxkxfWcd2nmpBJ4rkg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[],"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":"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":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"baseWeight","type":"uint64","indexed":false}],"type":"event","name":"BaseWeightChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","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},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","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":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[],"type":"event","name":"ValidatorsSetChanged","anonymous":false},{"inputs":[{"internalType":"uint128","name":"valuePerWeight","type":"uint128","indexed":false}],"type":"event","name":"ValuePerWeightChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseWeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum IRouter.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct IRouter.BlockCommitment[]","name":"blockCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"bytes32","name":"prevCommitmentHash","type":"bytes32"},{"internalType":"bytes32","name":"predBlockHash","type":"bytes32"},{"internalType":"struct IRouter.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct IRouter.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 IRouter.OutgoingMessage[]","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 IRouter.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBlocks"},{"inputs":[{"internalType":"struct IRouter.CodeCommitment[]","name":"codeCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitCodes"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"decoderImplementation","type":"address"},{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgramWithDecoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStorageSlot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address[]","name":"_validatorsKeys","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirror","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"program","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"uint64","name":"_baseWeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setBaseWeight"},{"inputs":[{"internalType":"address","name":"_mirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"string","name":"namespace","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setStorageSlot"},{"inputs":[{"internalType":"uint128","name":"_valuePerWeight","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setValuePerWeight"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address[]","name":"validatorsAddressArray","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"validatorExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"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":"valuePerWeight","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"programCodeId(address)":{"details":"Returns bytes32(0) in case of inexistent program."},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/","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/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"cancun","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":"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/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9","urls":["bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58","dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x78105f388516b83fcb68f7c006c5d9d685bc8ad7fadcdfa56c0919efa79a6373","urls":["bzz-raw://3a8ab1264895b4f5c8fd3aa18524016c4e88712a50e0a9935f421e13f3e09601","dweb:/ipfs/QmXyVe9k37fDFWmrfjYHisxmqnEynevYo88uVrnRAmYW6L"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xb16e44a8917c8292c47779fdcb6a8fa23a394258370375d83774e324c159a8d2","urls":["bzz-raw://356609e9f3ed19904806ba235c5fd247171754eea0f479d826558a9a7908cf05","dweb:/ipfs/QmXPnJzKpk6AhqXjd2cKgReTvnZULcn2tdH2RiU8avLP7P"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0x6e2bbb0f9226ee6174a405e59777676ce97028719c3a9d3a68681b1523252956","urls":["bzz-raw://7fbfc4096f10ff2e9aa8cd6e24cffadc66348f6881bc2b21e9e292923e6f31aa","dweb:/ipfs/QmNZWaiiWjTBwXB9B2wc5MnbQsFEVxkxfWcd2nmpBJ4rkg"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":76873,"exportedSymbols":{"Clones":[41840],"ECDSA":[45249],"IERC20":[43140],"IERC20Metadata":[43166],"IMirror":[73387],"IRouter":[73754],"IWrappedVara":[73765],"MessageHashUtils":[45550],"OwnableUpgradeable":[39387],"ReentrancyGuardTransient":[44045],"Router":[76872],"StorageSlot":[44581]},"nodeType":"SourceUnit","src":"39:18671:159","nodes":[{"id":75136,"nodeType":"PragmaDirective","src":"39:24:159","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":75138,"nodeType":"ImportDirective","src":"65:74:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":44582,"symbolAliases":[{"foreign":{"id":75137,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"73:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75140,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":75139,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75142,"nodeType":"ImportDirective","src":"242:64:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":41841,"symbolAliases":[{"foreign":{"id":75141,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"250:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75144,"nodeType":"ImportDirective","src":"307:75:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":45250,"symbolAliases":[{"foreign":{"id":75143,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45249,"src":"315:5:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75146,"nodeType":"ImportDirective","src":"383:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":45551,"symbolAliases":[{"foreign":{"id":75145,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"391:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75148,"nodeType":"ImportDirective","src":"481:100:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":44046,"symbolAliases":[{"foreign":{"id":75147,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44045,"src":"489:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75150,"nodeType":"ImportDirective","src":"582:38:159","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":73755,"symbolAliases":[{"foreign":{"id":75149,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73754,"src":"590:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75152,"nodeType":"ImportDirective","src":"621:38:159","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":73388,"symbolAliases":[{"foreign":{"id":75151,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"629:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75154,"nodeType":"ImportDirective","src":"660:48:159","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":73766,"symbolAliases":[{"foreign":{"id":75153,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73765,"src":"668:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75156,"nodeType":"ImportDirective","src":"709:70:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":43141,"symbolAliases":[{"foreign":{"id":75155,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"717:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75158,"nodeType":"ImportDirective","src":"780:97:159","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":76873,"sourceUnit":43167,"symbolAliases":[{"foreign":{"id":75157,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"788:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76872,"nodeType":"ContractDefinition","src":"879:17830:159","nodes":[{"id":75167,"nodeType":"UsingForDirective","src":"958:24:159","nodes":[],"global":false,"libraryName":{"id":75165,"name":"ECDSA","nameLocations":["964:5:159"],"nodeType":"IdentifierPath","referencedDeclaration":45249,"src":"964:5:159"},"typeName":{"id":75166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"974:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":75170,"nodeType":"UsingForDirective","src":"987:35:159","nodes":[],"global":false,"libraryName":{"id":75168,"name":"MessageHashUtils","nameLocations":["993:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":45550,"src":"993:16:159"},"typeName":{"id":75169,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75173,"nodeType":"VariableDeclaration","src":"1130:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1155:12:159","scope":76872,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":75172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1170:66:159","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":75181,"nodeType":"FunctionDefinition","src":"1296:53:159","nodes":[],"body":{"id":75180,"nodeType":"Block","src":"1310:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75177,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1320:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75179,"nodeType":"ExpressionStatement","src":"1320:22:159"}]},"documentation":{"id":75174,"nodeType":"StructuredDocumentation","src":"1243:48:159","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75175,"nodeType":"ParameterList","parameters":[],"src":"1307:2:159"},"returnParameters":{"id":75176,"nodeType":"ParameterList","parameters":[],"src":"1310:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75263,"nodeType":"FunctionDefinition","src":"1355:728:159","nodes":[],"body":{"id":75262,"nodeType":"Block","src":"1557:526:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":75198,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75183,"src":"1582:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75197,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1567:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75200,"nodeType":"ExpressionStatement","src":"1567:28:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":75202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1621:25:159","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":75201,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75404,"src":"1606:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75204,"nodeType":"ExpressionStatement","src":"1606:41:159"},{"assignments":[75207],"declarations":[{"constant":false,"id":75207,"mutability":"mutable","name":"router","nameLocation":"1673:6:159","nodeType":"VariableDeclaration","scope":75262,"src":"1657:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75206,"nodeType":"UserDefinedTypeName","pathNode":{"id":75205,"name":"Storage","nameLocations":["1657:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"1657:7:159"},"referencedDeclaration":73470,"src":"1657:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75210,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75208,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"1682:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1682:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1657:38:159"},{"expression":{"id":75220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75211,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"1706:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1713:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"1706:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75215,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1742:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:159","memberName":"number","nodeType":"MemberAccess","src":"1742:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1742:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75214,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"1732:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1732:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1706:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75221,"nodeType":"ExpressionStatement","src":"1706:53:159"},{"expression":{"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75222,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"1769:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1776:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"1769:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75225,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75185,"src":"1785:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1769:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75227,"nodeType":"ExpressionStatement","src":"1769:23:159"},{"expression":{"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75228,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"1802:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1809:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"1802:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75231,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75187,"src":"1823:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1802:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75233,"nodeType":"ExpressionStatement","src":"1802:33:159"},{"expression":{"id":75238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75234,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"1845:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1852:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"1845:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75237,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75189,"src":"1866:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1845:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75239,"nodeType":"ExpressionStatement","src":"1845:33:159"},{"expression":{"id":75244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75240,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"1888:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1895:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"1888:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36363636","id":75243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1924:4:159","typeDescriptions":{"typeIdentifier":"t_rational_6666_by_1","typeString":"int_const 6666"},"value":"6666"},"src":"1888:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75245,"nodeType":"ExpressionStatement","src":"1888:40:159"},{"expression":{"id":75250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75246,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"1966:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1973:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"1966:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"325f3530305f3030305f303030","id":75249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1986:13:159","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"src":"1966:33:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75251,"nodeType":"ExpressionStatement","src":"1966:33:159"},{"expression":{"id":75256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75252,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"2009:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2016:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"2009:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":75255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2033:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2009:26:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75257,"nodeType":"ExpressionStatement","src":"2009:26:159"},{"expression":{"arguments":[{"id":75259,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75192,"src":"2060:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75258,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76858,"src":"2045:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2045:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75261,"nodeType":"ExpressionStatement","src":"2045:31:159"}]},"functionSelector":"f8453e7c","implemented":true,"kind":"function","modifiers":[{"id":75195,"kind":"modifierInvocation","modifierName":{"id":75194,"name":"initializer","nameLocations":["1545:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1545:11:159"},"nodeType":"ModifierInvocation","src":"1545:11:159"}],"name":"initialize","nameLocation":"1364:10:159","parameters":{"id":75193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75183,"mutability":"mutable","name":"initialOwner","nameLocation":"1392:12:159","nodeType":"VariableDeclaration","scope":75263,"src":"1384:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75182,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75185,"mutability":"mutable","name":"_mirror","nameLocation":"1422:7:159","nodeType":"VariableDeclaration","scope":75263,"src":"1414:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75184,"name":"address","nodeType":"ElementaryTypeName","src":"1414:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75187,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1447:12:159","nodeType":"VariableDeclaration","scope":75263,"src":"1439:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75186,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75189,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1477:12:159","nodeType":"VariableDeclaration","scope":75263,"src":"1469:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75188,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75192,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"1516:15:159","nodeType":"VariableDeclaration","scope":75263,"src":"1499:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75190,"name":"address","nodeType":"ElementaryTypeName","src":"1499:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75191,"nodeType":"ArrayTypeName","src":"1499:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1374:163:159"},"returnParameters":{"id":75196,"nodeType":"ParameterList","parameters":[],"src":"1557:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75344,"nodeType":"FunctionDefinition","src":"2089:662:159","nodes":[],"body":{"id":75343,"nodeType":"Block","src":"2147:604:159","nodes":[],"statements":[{"assignments":[75273],"declarations":[{"constant":false,"id":75273,"mutability":"mutable","name":"oldRouter","nameLocation":"2173:9:159","nodeType":"VariableDeclaration","scope":75343,"src":"2157:25:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75272,"nodeType":"UserDefinedTypeName","pathNode":{"id":75271,"name":"Storage","nameLocations":["2157:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"2157:7:159"},"referencedDeclaration":73470,"src":"2157:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75276,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75274,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"2185:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2157:41:159"},{"assignments":[75278],"declarations":[{"constant":false,"id":75278,"mutability":"mutable","name":"_mirror","nameLocation":"2217:7:159","nodeType":"VariableDeclaration","scope":75343,"src":"2209:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75277,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75281,"initialValue":{"expression":{"id":75279,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75273,"src":"2227:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2237:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2227:16:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2209:34:159"},{"assignments":[75283],"declarations":[{"constant":false,"id":75283,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"2261:12:159","nodeType":"VariableDeclaration","scope":75343,"src":"2253:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75282,"name":"address","nodeType":"ElementaryTypeName","src":"2253:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75286,"initialValue":{"expression":{"id":75284,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75273,"src":"2276:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2286:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2276:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2253:44:159"},{"assignments":[75288],"declarations":[{"constant":false,"id":75288,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2315:12:159","nodeType":"VariableDeclaration","scope":75343,"src":"2307:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75287,"name":"address","nodeType":"ElementaryTypeName","src":"2307:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75291,"initialValue":{"expression":{"id":75289,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75273,"src":"2330:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2340:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2330:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2307:44:159"},{"assignments":[75296],"declarations":[{"constant":false,"id":75296,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"2378:15:159","nodeType":"VariableDeclaration","scope":75343,"src":"2361:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75294,"name":"address","nodeType":"ElementaryTypeName","src":"2361:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75295,"nodeType":"ArrayTypeName","src":"2361:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":75299,"initialValue":{"expression":{"id":75297,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75273,"src":"2396:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2406:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"2396:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2361:59:159"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":75301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2446:25:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":75300,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75404,"src":"2431:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75303,"nodeType":"ExpressionStatement","src":"2431:41:159"},{"assignments":[75306],"declarations":[{"constant":false,"id":75306,"mutability":"mutable","name":"router","nameLocation":"2498:6:159","nodeType":"VariableDeclaration","scope":75343,"src":"2482:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75305,"nodeType":"UserDefinedTypeName","pathNode":{"id":75304,"name":"Storage","nameLocations":["2482:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"2482:7:159"},"referencedDeclaration":73470,"src":"2482:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75309,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75307,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"2507:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2482:38:159"},{"expression":{"id":75319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75310,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"2531:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2538:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"2531:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75314,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2567:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2573:6:159","memberName":"number","nodeType":"MemberAccess","src":"2567:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2582:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2567:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75313,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"2557:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2531:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75320,"nodeType":"ExpressionStatement","src":"2531:53:159"},{"expression":{"id":75325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75321,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"2594:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2601:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"2594:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75324,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75278,"src":"2610:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2594:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75326,"nodeType":"ExpressionStatement","src":"2594:23:159"},{"expression":{"id":75331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75327,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"2627:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2634:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"2627:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75330,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75283,"src":"2648:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75332,"nodeType":"ExpressionStatement","src":"2627:33:159"},{"expression":{"id":75337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75333,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"2670:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2677:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"2670:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75336,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75288,"src":"2691:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2670:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75338,"nodeType":"ExpressionStatement","src":"2670:33:159"},{"expression":{"arguments":[{"id":75340,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75296,"src":"2728:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":75339,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76858,"src":"2713:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75342,"nodeType":"ExpressionStatement","src":"2713:31:159"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75266,"kind":"modifierInvocation","modifierName":{"id":75265,"name":"onlyOwner","nameLocations":["2120:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2120:9:159"},"nodeType":"ModifierInvocation","src":"2120:9:159"},{"arguments":[{"hexValue":"32","id":75268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2144:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75269,"kind":"modifierInvocation","modifierName":{"id":75267,"name":"reinitializer","nameLocations":["2130:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"2130:13:159"},"nodeType":"ModifierInvocation","src":"2130:16:159"}],"name":"reinitialize","nameLocation":"2098:12:159","parameters":{"id":75264,"nodeType":"ParameterList","parameters":[],"src":"2110:2:159"},"returnParameters":{"id":75270,"nodeType":"ParameterList","parameters":[],"src":"2147:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75356,"nodeType":"FunctionDefinition","src":"2790:126:159","nodes":[],"body":{"id":75355,"nodeType":"Block","src":"2846:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":75351,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75173,"src":"2890:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75349,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"2863:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2875:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"2863:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2863:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2904:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"2863:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75348,"id":75354,"nodeType":"Return","src":"2856:53:159"}]},"baseFunctions":[73578],"functionSelector":"96708226","implemented":true,"kind":"function","modifiers":[],"name":"getStorageSlot","nameLocation":"2799:14:159","parameters":{"id":75345,"nodeType":"ParameterList","parameters":[],"src":"2813:2:159"},"returnParameters":{"id":75348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75356,"src":"2837:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2837:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2836:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75404,"nodeType":"FunctionDefinition","src":"2922:287:159","nodes":[],"body":{"id":75403,"nodeType":"Block","src":"2988:221:159","nodes":[],"statements":[{"assignments":[75364],"declarations":[{"constant":false,"id":75364,"mutability":"mutable","name":"slot","nameLocation":"3006:4:159","nodeType":"VariableDeclaration","scope":75403,"src":"2998:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2998:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75390,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":75373,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75358,"src":"3058:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":75372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3052:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75371,"name":"bytes","nodeType":"ElementaryTypeName","src":"3052:5:159","typeDescriptions":{}}},"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75370,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3042:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3034:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75368,"name":"uint256","nodeType":"ElementaryTypeName","src":"3034:7:159","typeDescriptions":{}}},"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3034:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3073:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3034:40:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3023:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3027:6:159","memberName":"encode","nodeType":"MemberAccess","src":"3023:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3023:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75365,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3013:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3013:63:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":75388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3079:23:159","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":75385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3096:4:159","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":75384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3088:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75383,"name":"uint256","nodeType":"ElementaryTypeName","src":"3088:7:159","typeDescriptions":{}}},"id":75386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":75381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3080:7:159","typeDescriptions":{}}},"id":75387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3013:89:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2998:104:159"},{"expression":{"id":75398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":75394,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75173,"src":"3140:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75391,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"3113:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44581_$","typeString":"type(library StorageSlot)"}},"id":75393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44319,"src":"3113:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44274_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":75395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44274_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":75396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3154:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44273,"src":"3113:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75397,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"3162:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3113:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75399,"nodeType":"ExpressionStatement","src":"3113:53:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75400,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73563,"src":"3182:18:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75402,"nodeType":"EmitStatement","src":"3177:25:159"}]},"baseFunctions":[73583],"functionSelector":"5686cad5","implemented":true,"kind":"function","modifiers":[{"id":75361,"kind":"modifierInvocation","modifierName":{"id":75360,"name":"onlyOwner","nameLocations":["2978:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"2978:9:159"},"nodeType":"ModifierInvocation","src":"2978:9:159"}],"name":"setStorageSlot","nameLocation":"2931:14:159","parameters":{"id":75359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75358,"mutability":"mutable","name":"namespace","nameLocation":"2960:9:159","nodeType":"VariableDeclaration","scope":75404,"src":"2946:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75357,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2945:25:159"},"returnParameters":{"id":75362,"nodeType":"ParameterList","parameters":[],"src":"2988:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75419,"nodeType":"FunctionDefinition","src":"3215:153:159","nodes":[],"body":{"id":75418,"nodeType":"Block","src":"3273:95:159","nodes":[],"statements":[{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"router","nameLocation":"3299:6:159","nodeType":"VariableDeclaration","scope":75418,"src":"3283:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75410,"nodeType":"UserDefinedTypeName","pathNode":{"id":75409,"name":"Storage","nameLocations":["3283:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3283:7:159"},"referencedDeclaration":73470,"src":"3283:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75414,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75412,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"3308:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3283:38:159"},{"expression":{"expression":{"id":75415,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"3338:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3345:16:159","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":73435,"src":"3338:23:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75408,"id":75417,"nodeType":"Return","src":"3331:30:159"}]},"baseFunctions":[73588],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3224:16:159","parameters":{"id":75405,"nodeType":"ParameterList","parameters":[],"src":"3240:2:159"},"returnParameters":{"id":75408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75419,"src":"3264:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3264:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3263:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75434,"nodeType":"FunctionDefinition","src":"3374:167:159","nodes":[],"body":{"id":75433,"nodeType":"Block","src":"3439:102:159","nodes":[],"statements":[{"assignments":[75426],"declarations":[{"constant":false,"id":75426,"mutability":"mutable","name":"router","nameLocation":"3465:6:159","nodeType":"VariableDeclaration","scope":75433,"src":"3449:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75425,"nodeType":"UserDefinedTypeName","pathNode":{"id":75424,"name":"Storage","nameLocations":["3449:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3449:7:159"},"referencedDeclaration":73470,"src":"3449:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75429,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75427,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"3474:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3474:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3449:38:159"},{"expression":{"expression":{"id":75430,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75426,"src":"3504:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3511:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"3504:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75423,"id":75432,"nodeType":"Return","src":"3497:37:159"}]},"baseFunctions":[73593],"functionSelector":"2dacfb69","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentHash","nameLocation":"3383:23:159","parameters":{"id":75420,"nodeType":"ParameterList","parameters":[],"src":"3406:2:159"},"returnParameters":{"id":75423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75434,"src":"3430:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3430:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3429:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75449,"nodeType":"FunctionDefinition","src":"3547:143:159","nodes":[],"body":{"id":75448,"nodeType":"Block","src":"3600:90:159","nodes":[],"statements":[{"assignments":[75441],"declarations":[{"constant":false,"id":75441,"mutability":"mutable","name":"router","nameLocation":"3626:6:159","nodeType":"VariableDeclaration","scope":75448,"src":"3610:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75440,"nodeType":"UserDefinedTypeName","pathNode":{"id":75439,"name":"Storage","nameLocations":["3610:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3610:7:159"},"referencedDeclaration":73470,"src":"3610:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75444,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75442,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"3635:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3610:38:159"},{"expression":{"expression":{"id":75445,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75441,"src":"3665:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3672:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"3665:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75438,"id":75447,"nodeType":"Return","src":"3658:25:159"}]},"baseFunctions":[73598],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"3556:11:159","parameters":{"id":75435,"nodeType":"ParameterList","parameters":[],"src":"3567:2:159"},"returnParameters":{"id":75438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75449,"src":"3591:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75436,"name":"address","nodeType":"ElementaryTypeName","src":"3591:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3590:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75464,"nodeType":"FunctionDefinition","src":"3696:143:159","nodes":[],"body":{"id":75463,"nodeType":"Block","src":"3749:90:159","nodes":[],"statements":[{"assignments":[75456],"declarations":[{"constant":false,"id":75456,"mutability":"mutable","name":"router","nameLocation":"3775:6:159","nodeType":"VariableDeclaration","scope":75463,"src":"3759:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75455,"nodeType":"UserDefinedTypeName","pathNode":{"id":75454,"name":"Storage","nameLocations":["3759:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3759:7:159"},"referencedDeclaration":73470,"src":"3759:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75459,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75457,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"3784:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3784:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3759:38:159"},{"expression":{"expression":{"id":75460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75456,"src":"3814:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3821:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"3814:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75453,"id":75462,"nodeType":"Return","src":"3807:25:159"}]},"baseFunctions":[73603],"functionSelector":"78ee5dec","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxy","nameLocation":"3705:11:159","parameters":{"id":75450,"nodeType":"ParameterList","parameters":[],"src":"3716:2:159"},"returnParameters":{"id":75453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75464,"src":"3740:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75451,"name":"address","nodeType":"ElementaryTypeName","src":"3740:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3739:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75479,"nodeType":"FunctionDefinition","src":"3845:133:159","nodes":[],"body":{"id":75478,"nodeType":"Block","src":"3893:85:159","nodes":[],"statements":[{"assignments":[75471],"declarations":[{"constant":false,"id":75471,"mutability":"mutable","name":"router","nameLocation":"3919:6:159","nodeType":"VariableDeclaration","scope":75478,"src":"3903:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75470,"nodeType":"UserDefinedTypeName","pathNode":{"id":75469,"name":"Storage","nameLocations":["3903:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"3903:7:159"},"referencedDeclaration":73470,"src":"3903:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75474,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75472,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"3928:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3928:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3903:38:159"},{"expression":{"expression":{"id":75475,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"3958:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"3958:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75468,"id":75477,"nodeType":"Return","src":"3951:20:159"}]},"baseFunctions":[73608],"functionSelector":"444d9172","implemented":true,"kind":"function","modifiers":[],"name":"mirror","nameLocation":"3854:6:159","parameters":{"id":75465,"nodeType":"ParameterList","parameters":[],"src":"3860:2:159"},"returnParameters":{"id":75468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75479,"src":"3884:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75466,"name":"address","nodeType":"ElementaryTypeName","src":"3884:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3883:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75499,"nodeType":"FunctionDefinition","src":"3984:143:159","nodes":[],"body":{"id":75498,"nodeType":"Block","src":"4039:88:159","nodes":[],"statements":[{"assignments":[75488],"declarations":[{"constant":false,"id":75488,"mutability":"mutable","name":"router","nameLocation":"4065:6:159","nodeType":"VariableDeclaration","scope":75498,"src":"4049:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75487,"nodeType":"UserDefinedTypeName","pathNode":{"id":75486,"name":"Storage","nameLocations":["4049:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4049:7:159"},"referencedDeclaration":73470,"src":"4049:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75491,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75489,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"4074:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4074:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4049:38:159"},{"expression":{"id":75496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75492,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75488,"src":"4097:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4104:6:159","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73437,"src":"4097:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75495,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75481,"src":"4113:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4097:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75497,"nodeType":"ExpressionStatement","src":"4097:23:159"}]},"baseFunctions":[73613],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":75484,"kind":"modifierInvocation","modifierName":{"id":75483,"name":"onlyOwner","nameLocations":["4029:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"4029:9:159"},"nodeType":"ModifierInvocation","src":"4029:9:159"}],"name":"setMirror","nameLocation":"3993:9:159","parameters":{"id":75482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75481,"mutability":"mutable","name":"_mirror","nameLocation":"4011:7:159","nodeType":"VariableDeclaration","scope":75499,"src":"4003:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75480,"name":"address","nodeType":"ElementaryTypeName","src":"4003:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4002:17:159"},"returnParameters":{"id":75485,"nodeType":"ParameterList","parameters":[],"src":"4039:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75514,"nodeType":"FunctionDefinition","src":"4183:159:159","nodes":[],"body":{"id":75513,"nodeType":"Block","src":"4244:98:159","nodes":[],"statements":[{"assignments":[75506],"declarations":[{"constant":false,"id":75506,"mutability":"mutable","name":"router","nameLocation":"4270:6:159","nodeType":"VariableDeclaration","scope":75513,"src":"4254:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75505,"nodeType":"UserDefinedTypeName","pathNode":{"id":75504,"name":"Storage","nameLocations":["4254:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4254:7:159"},"referencedDeclaration":73470,"src":"4254:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75509,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75507,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"4279:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4279:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4254:38:159"},{"expression":{"expression":{"id":75510,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"4309:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4316:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"4309:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75503,"id":75512,"nodeType":"Return","src":"4302:33:159"}]},"baseFunctions":[73618],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"4192:19:159","parameters":{"id":75500,"nodeType":"ParameterList","parameters":[],"src":"4211:2:159"},"returnParameters":{"id":75503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75514,"src":"4235:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75501,"name":"uint256","nodeType":"ElementaryTypeName","src":"4235:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4234:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75534,"nodeType":"FunctionDefinition","src":"4348:159:159","nodes":[],"body":{"id":75533,"nodeType":"Block","src":"4415:92:159","nodes":[],"statements":[{"assignments":[75524],"declarations":[{"constant":false,"id":75524,"mutability":"mutable","name":"router","nameLocation":"4441:6:159","nodeType":"VariableDeclaration","scope":75533,"src":"4425:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75523,"nodeType":"UserDefinedTypeName","pathNode":{"id":75522,"name":"Storage","nameLocations":["4425:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4425:7:159"},"referencedDeclaration":73470,"src":"4425:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75527,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75525,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"4450:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4425:38:159"},{"expression":{"baseExpression":{"expression":{"id":75528,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75524,"src":"4480:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4487:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"4480:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75531,"indexExpression":{"id":75530,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75516,"src":"4493:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4480:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"functionReturnParameters":75521,"id":75532,"nodeType":"Return","src":"4473:27:159"}]},"baseFunctions":[73626],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"4357:9:159","parameters":{"id":75517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75516,"mutability":"mutable","name":"codeId","nameLocation":"4375:6:159","nodeType":"VariableDeclaration","scope":75534,"src":"4367:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4367:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4366:16:159"},"returnParameters":{"id":75521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75534,"src":"4404:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"typeName":{"id":75519,"nodeType":"UserDefinedTypeName","pathNode":{"id":75518,"name":"CodeState","nameLocations":["4404:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":73474,"src":"4404:9:159"},"referencedDeclaration":73474,"src":"4404:9:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"visibility":"internal"}],"src":"4403:11:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75549,"nodeType":"FunctionDefinition","src":"4513:147:159","nodes":[],"body":{"id":75548,"nodeType":"Block","src":"4568:92:159","nodes":[],"statements":[{"assignments":[75541],"declarations":[{"constant":false,"id":75541,"mutability":"mutable","name":"router","nameLocation":"4594:6:159","nodeType":"VariableDeclaration","scope":75548,"src":"4578:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75540,"nodeType":"UserDefinedTypeName","pathNode":{"id":75539,"name":"Storage","nameLocations":["4578:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4578:7:159"},"referencedDeclaration":73470,"src":"4578:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75544,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75542,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"4603:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4603:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4578:38:159"},{"expression":{"expression":{"id":75545,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75541,"src":"4633:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4640:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"4633:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75538,"id":75547,"nodeType":"Return","src":"4626:27:159"}]},"baseFunctions":[73631],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"4522:13:159","parameters":{"id":75535,"nodeType":"ParameterList","parameters":[],"src":"4535:2:159"},"returnParameters":{"id":75538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75549,"src":"4559:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75536,"name":"uint256","nodeType":"ElementaryTypeName","src":"4559:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4558:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75568,"nodeType":"FunctionDefinition","src":"4666:166:159","nodes":[],"body":{"id":75567,"nodeType":"Block","src":"4736:96:159","nodes":[],"statements":[{"assignments":[75558],"declarations":[{"constant":false,"id":75558,"mutability":"mutable","name":"router","nameLocation":"4762:6:159","nodeType":"VariableDeclaration","scope":75567,"src":"4746:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75557,"nodeType":"UserDefinedTypeName","pathNode":{"id":75556,"name":"Storage","nameLocations":["4746:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4746:7:159"},"referencedDeclaration":73470,"src":"4746:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75561,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75559,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"4771:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4746:38:159"},{"expression":{"baseExpression":{"expression":{"id":75562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75558,"src":"4801:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4808:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"4801:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":75565,"indexExpression":{"id":75564,"name":"program","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"4817:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4801:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75555,"id":75566,"nodeType":"Return","src":"4794:31:159"}]},"baseFunctions":[73639],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"4675:13:159","parameters":{"id":75552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75551,"mutability":"mutable","name":"program","nameLocation":"4697:7:159","nodeType":"VariableDeclaration","scope":75568,"src":"4689:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75550,"name":"address","nodeType":"ElementaryTypeName","src":"4689:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4688:17:159"},"returnParameters":{"id":75555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75568,"src":"4727:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4727:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4726:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75583,"nodeType":"FunctionDefinition","src":"4883:173:159","nodes":[],"body":{"id":75582,"nodeType":"Block","src":"4951:105:159","nodes":[],"statements":[{"assignments":[75575],"declarations":[{"constant":false,"id":75575,"mutability":"mutable","name":"router","nameLocation":"4977:6:159","nodeType":"VariableDeclaration","scope":75582,"src":"4961:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75574,"nodeType":"UserDefinedTypeName","pathNode":{"id":75573,"name":"Storage","nameLocations":["4961:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"4961:7:159"},"referencedDeclaration":73470,"src":"4961:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75578,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75576,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"4986:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4986:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4961:38:159"},{"expression":{"expression":{"id":75579,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75575,"src":"5016:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5023:26:159","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":73445,"src":"5016:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75572,"id":75581,"nodeType":"Return","src":"5009:40:159"}]},"baseFunctions":[73644],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"4892:26:159","parameters":{"id":75569,"nodeType":"ParameterList","parameters":[],"src":"4918:2:159"},"returnParameters":{"id":75572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75583,"src":"4942:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4942:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4941:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75600,"nodeType":"FunctionDefinition","src":"5062:204:159","nodes":[],"body":{"id":75599,"nodeType":"Block","src":"5123:143:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75588,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75616,"src":"5195:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5195:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75590,"name":"signingThresholdPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75583,"src":"5215:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5215:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5195:48:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39393939","id":75593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5246:4:159","typeDescriptions":{"typeIdentifier":"t_rational_9999_by_1","typeString":"int_const 9999"},"value":"9999"},"src":"5195:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5194:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":75596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5254:5:159","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"5194:65:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75587,"id":75598,"nodeType":"Return","src":"5187:72:159"}]},"baseFunctions":[73649],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"5071:19:159","parameters":{"id":75584,"nodeType":"ParameterList","parameters":[],"src":"5090:2:159"},"returnParameters":{"id":75587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75600,"src":"5114:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75585,"name":"uint256","nodeType":"ElementaryTypeName","src":"5114:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5113:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75616,"nodeType":"FunctionDefinition","src":"5272:157:159","nodes":[],"body":{"id":75615,"nodeType":"Block","src":"5329:100:159","nodes":[],"statements":[{"assignments":[75607],"declarations":[{"constant":false,"id":75607,"mutability":"mutable","name":"router","nameLocation":"5355:6:159","nodeType":"VariableDeclaration","scope":75615,"src":"5339:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75606,"nodeType":"UserDefinedTypeName","pathNode":{"id":75605,"name":"Storage","nameLocations":["5339:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5339:7:159"},"referencedDeclaration":73470,"src":"5339:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75610,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75608,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"5364:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5364:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5339:38:159"},{"expression":{"expression":{"expression":{"id":75611,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75607,"src":"5394:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5401:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"5394:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":75613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5416:6:159","memberName":"length","nodeType":"MemberAccess","src":"5394:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75604,"id":75614,"nodeType":"Return","src":"5387:35:159"}]},"baseFunctions":[73654],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5281:15:159","parameters":{"id":75601,"nodeType":"ParameterList","parameters":[],"src":"5296:2:159"},"returnParameters":{"id":75604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75616,"src":"5320:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75602,"name":"uint256","nodeType":"ElementaryTypeName","src":"5320:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5319:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75635,"nodeType":"FunctionDefinition","src":"5435:171:159","nodes":[],"body":{"id":75634,"nodeType":"Block","src":"5506:100:159","nodes":[],"statements":[{"assignments":[75625],"declarations":[{"constant":false,"id":75625,"mutability":"mutable","name":"router","nameLocation":"5532:6:159","nodeType":"VariableDeclaration","scope":75634,"src":"5516:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75624,"nodeType":"UserDefinedTypeName","pathNode":{"id":75623,"name":"Storage","nameLocations":["5516:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5516:7:159"},"referencedDeclaration":73470,"src":"5516:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75628,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75626,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"5541:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5516:38:159"},{"expression":{"baseExpression":{"expression":{"id":75629,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75625,"src":"5571:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5578:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"5571:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":75632,"indexExpression":{"id":75631,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75618,"src":"5589:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5571:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":75622,"id":75633,"nodeType":"Return","src":"5564:35:159"}]},"baseFunctions":[73661],"functionSelector":"8febbd59","implemented":true,"kind":"function","modifiers":[],"name":"validatorExists","nameLocation":"5444:15:159","parameters":{"id":75619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75618,"mutability":"mutable","name":"validator","nameLocation":"5468:9:159","nodeType":"VariableDeclaration","scope":75635,"src":"5460:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75617,"name":"address","nodeType":"ElementaryTypeName","src":"5460:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5459:19:159"},"returnParameters":{"id":75622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75635,"src":"5500:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75620,"name":"bool","nodeType":"ElementaryTypeName","src":"5500:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5499:6:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75651,"nodeType":"FunctionDefinition","src":"5612:154:159","nodes":[],"body":{"id":75650,"nodeType":"Block","src":"5673:93:159","nodes":[],"statements":[{"assignments":[75643],"declarations":[{"constant":false,"id":75643,"mutability":"mutable","name":"router","nameLocation":"5699:6:159","nodeType":"VariableDeclaration","scope":75650,"src":"5683:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75642,"nodeType":"UserDefinedTypeName","pathNode":{"id":75641,"name":"Storage","nameLocations":["5683:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"5683:7:159"},"referencedDeclaration":73470,"src":"5683:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75646,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75644,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"5708:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5708:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5683:38:159"},{"expression":{"expression":{"id":75647,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75643,"src":"5738:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5745:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"5738:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":75640,"id":75649,"nodeType":"Return","src":"5731:28:159"}]},"baseFunctions":[73667],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5621:10:159","parameters":{"id":75636,"nodeType":"ParameterList","parameters":[],"src":"5631:2:159"},"returnParameters":{"id":75640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75651,"src":"5655:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75637,"name":"address","nodeType":"ElementaryTypeName","src":"5655:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75638,"nodeType":"ArrayTypeName","src":"5655:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5654:18:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75670,"nodeType":"FunctionDefinition","src":"5829:209:159","nodes":[],"body":{"id":75669,"nodeType":"Block","src":"5917:121:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75659,"name":"_cleanValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76803,"src":"5927:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5927:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75661,"nodeType":"ExpressionStatement","src":"5927:18:159"},{"expression":{"arguments":[{"id":75663,"name":"validatorsAddressArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75654,"src":"5970:22:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":75662,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76858,"src":"5955:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":75664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75665,"nodeType":"ExpressionStatement","src":"5955:38:159"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75666,"name":"ValidatorsSetChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"6009:20:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75668,"nodeType":"EmitStatement","src":"6004:27:159"}]},"baseFunctions":[73673],"functionSelector":"e71731e4","implemented":true,"kind":"function","modifiers":[{"id":75657,"kind":"modifierInvocation","modifierName":{"id":75656,"name":"onlyOwner","nameLocations":["5907:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"5907:9:159"},"nodeType":"ModifierInvocation","src":"5907:9:159"}],"name":"updateValidators","nameLocation":"5838:16:159","parameters":{"id":75655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75654,"mutability":"mutable","name":"validatorsAddressArray","nameLocation":"5874:22:159","nodeType":"VariableDeclaration","scope":75670,"src":"5855:41:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75652,"name":"address","nodeType":"ElementaryTypeName","src":"5855:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75653,"nodeType":"ArrayTypeName","src":"5855:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5854:43:159"},"returnParameters":{"id":75658,"nodeType":"ParameterList","parameters":[],"src":"5917:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75685,"nodeType":"FunctionDefinition","src":"6092:140:159","nodes":[],"body":{"id":75684,"nodeType":"Block","src":"6143:89:159","nodes":[],"statements":[{"assignments":[75677],"declarations":[{"constant":false,"id":75677,"mutability":"mutable","name":"router","nameLocation":"6169:6:159","nodeType":"VariableDeclaration","scope":75684,"src":"6153:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75676,"nodeType":"UserDefinedTypeName","pathNode":{"id":75675,"name":"Storage","nameLocations":["6153:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6153:7:159"},"referencedDeclaration":73470,"src":"6153:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75680,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75678,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"6178:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6153:38:159"},{"expression":{"expression":{"id":75681,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75677,"src":"6208:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6215:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"6208:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75674,"id":75683,"nodeType":"Return","src":"6201:24:159"}]},"baseFunctions":[73678],"functionSelector":"d3fd6364","implemented":true,"kind":"function","modifiers":[],"name":"baseWeight","nameLocation":"6101:10:159","parameters":{"id":75671,"nodeType":"ParameterList","parameters":[],"src":"6111:2:159"},"returnParameters":{"id":75674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75685,"src":"6135:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75672,"name":"uint64","nodeType":"ElementaryTypeName","src":"6135:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6134:8:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75709,"nodeType":"FunctionDefinition","src":"6238:204:159","nodes":[],"body":{"id":75708,"nodeType":"Block","src":"6300:142:159","nodes":[],"statements":[{"assignments":[75694],"declarations":[{"constant":false,"id":75694,"mutability":"mutable","name":"router","nameLocation":"6326:6:159","nodeType":"VariableDeclaration","scope":75708,"src":"6310:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75693,"nodeType":"UserDefinedTypeName","pathNode":{"id":75692,"name":"Storage","nameLocations":["6310:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6310:7:159"},"referencedDeclaration":73470,"src":"6310:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75697,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75695,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"6335:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6335:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6310:38:159"},{"expression":{"id":75702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75698,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"6358:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6365:10:159","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":73447,"src":"6358:17:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75701,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"6378:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6358:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75703,"nodeType":"ExpressionStatement","src":"6358:31:159"},{"eventCall":{"arguments":[{"id":75705,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"6423:11:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75704,"name":"BaseWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6405:17:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":75706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6405:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75707,"nodeType":"EmitStatement","src":"6400:35:159"}]},"baseFunctions":[73683],"functionSelector":"8028861a","implemented":true,"kind":"function","modifiers":[{"id":75690,"kind":"modifierInvocation","modifierName":{"id":75689,"name":"onlyOwner","nameLocations":["6290:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6290:9:159"},"nodeType":"ModifierInvocation","src":"6290:9:159"}],"name":"setBaseWeight","nameLocation":"6247:13:159","parameters":{"id":75688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75687,"mutability":"mutable","name":"_baseWeight","nameLocation":"6268:11:159","nodeType":"VariableDeclaration","scope":75709,"src":"6261:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75686,"name":"uint64","nodeType":"ElementaryTypeName","src":"6261:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6260:20:159"},"returnParameters":{"id":75691,"nodeType":"ParameterList","parameters":[],"src":"6300:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75724,"nodeType":"FunctionDefinition","src":"6448:149:159","nodes":[],"body":{"id":75723,"nodeType":"Block","src":"6504:93:159","nodes":[],"statements":[{"assignments":[75716],"declarations":[{"constant":false,"id":75716,"mutability":"mutable","name":"router","nameLocation":"6530:6:159","nodeType":"VariableDeclaration","scope":75723,"src":"6514:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75715,"nodeType":"UserDefinedTypeName","pathNode":{"id":75714,"name":"Storage","nameLocations":["6514:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6514:7:159"},"referencedDeclaration":73470,"src":"6514:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75717,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"6539:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6539:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6514:38:159"},{"expression":{"expression":{"id":75720,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"6569:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6576:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6569:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75713,"id":75722,"nodeType":"Return","src":"6562:28:159"}]},"baseFunctions":[73688],"functionSelector":"0834fecc","implemented":true,"kind":"function","modifiers":[],"name":"valuePerWeight","nameLocation":"6457:14:159","parameters":{"id":75710,"nodeType":"ParameterList","parameters":[],"src":"6471:2:159"},"returnParameters":{"id":75713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75724,"src":"6495:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75711,"name":"uint128","nodeType":"ElementaryTypeName","src":"6495:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6494:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75748,"nodeType":"FunctionDefinition","src":"6603:229:159","nodes":[],"body":{"id":75747,"nodeType":"Block","src":"6674:158:159","nodes":[],"statements":[{"assignments":[75733],"declarations":[{"constant":false,"id":75733,"mutability":"mutable","name":"router","nameLocation":"6700:6:159","nodeType":"VariableDeclaration","scope":75747,"src":"6684:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75732,"nodeType":"UserDefinedTypeName","pathNode":{"id":75731,"name":"Storage","nameLocations":["6684:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"6684:7:159"},"referencedDeclaration":73470,"src":"6684:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75736,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75734,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"6709:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6709:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6684:38:159"},{"expression":{"id":75741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75737,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75733,"src":"6732:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6739:14:159","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":73449,"src":"6732:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75740,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75726,"src":"6756:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6732:39:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":75742,"nodeType":"ExpressionStatement","src":"6732:39:159"},{"eventCall":{"arguments":[{"id":75744,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75726,"src":"6809:15:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75743,"name":"ValuePerWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73573,"src":"6787:21:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":75745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6787:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75746,"nodeType":"EmitStatement","src":"6782:43:159"}]},"baseFunctions":[73693],"functionSelector":"a6bbbe1c","implemented":true,"kind":"function","modifiers":[{"id":75729,"kind":"modifierInvocation","modifierName":{"id":75728,"name":"onlyOwner","nameLocations":["6664:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"6664:9:159"},"nodeType":"ModifierInvocation","src":"6664:9:159"}],"name":"setValuePerWeight","nameLocation":"6612:17:159","parameters":{"id":75727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75726,"mutability":"mutable","name":"_valuePerWeight","nameLocation":"6638:15:159","nodeType":"VariableDeclaration","scope":75748,"src":"6630:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75725,"name":"uint128","nodeType":"ElementaryTypeName","src":"6630:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6629:25:159"},"returnParameters":{"id":75730,"nodeType":"ParameterList","parameters":[],"src":"6674:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75763,"nodeType":"FunctionDefinition","src":"6838:113:159","nodes":[],"body":{"id":75762,"nodeType":"Block","src":"6887:64:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75755,"name":"baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75685,"src":"6912:10:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":75756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6912:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":75754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6904:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":75753,"name":"uint128","nodeType":"ElementaryTypeName","src":"6904:7:159","typeDescriptions":{}}},"id":75757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6904:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75758,"name":"valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75724,"src":"6928:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":75759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6928:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6904:40:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":75752,"id":75761,"nodeType":"Return","src":"6897:47:159"}]},"baseFunctions":[73698],"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"6847:7:159","parameters":{"id":75749,"nodeType":"ParameterList","parameters":[],"src":"6854:2:159"},"returnParameters":{"id":75752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75763,"src":"6878:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75750,"name":"uint128","nodeType":"ElementaryTypeName","src":"6878:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6877:9:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75815,"nodeType":"FunctionDefinition","src":"6987:453:159","nodes":[],"body":{"id":75814,"nodeType":"Block","src":"7063:377:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75771,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75767,"src":"7081:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7095:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7081:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":75775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7109: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":75774,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7100:8:159","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":75776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7115:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7100:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7081:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f6254784861736820636f756c646e277420626520666f756e64","id":75780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7118:30:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""},"value":"blobTxHash couldn't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""}],"id":75770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7073:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7073:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75782,"nodeType":"ExpressionStatement","src":"7073:76:159"},{"assignments":[75785],"declarations":[{"constant":false,"id":75785,"mutability":"mutable","name":"router","nameLocation":"7176:6:159","nodeType":"VariableDeclaration","scope":75814,"src":"7160:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75784,"nodeType":"UserDefinedTypeName","pathNode":{"id":75783,"name":"Storage","nameLocations":["7160:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"7160:7:159"},"referencedDeclaration":73470,"src":"7160:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75788,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75786,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"7185:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7160:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":75796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75790,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"7217:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7224:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"7217:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75793,"indexExpression":{"id":75792,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"7230:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7217:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75794,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"7241:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7251:7:159","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":73471,"src":"7241:17:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"7217:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652077697468207375636820696420616c726561647920726571756573746564206f722076616c696461746564","id":75797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7260:50:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""},"value":"code with such id already requested or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""}],"id":75789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7209:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7209:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75799,"nodeType":"ExpressionStatement","src":"7209:102:159"},{"expression":{"id":75807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75800,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"7322:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7329:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"7322:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75804,"indexExpression":{"id":75802,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"7335:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7322:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75805,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"7345:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7355:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73472,"src":"7345:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"7322:52:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"id":75808,"nodeType":"ExpressionStatement","src":"7322:52:159"},{"eventCall":{"arguments":[{"id":75810,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"7414:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75811,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75767,"src":"7422:10:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75809,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"7390:23:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":75812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7390:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75813,"nodeType":"EmitStatement","src":"7385:48:159"}]},"baseFunctions":[73705],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"6996:21:159","parameters":{"id":75768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75765,"mutability":"mutable","name":"codeId","nameLocation":"7026:6:159","nodeType":"VariableDeclaration","scope":75815,"src":"7018:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7018:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75767,"mutability":"mutable","name":"blobTxHash","nameLocation":"7042:10:159","nodeType":"VariableDeclaration","scope":75815,"src":"7034:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7034:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7017:36:159"},"returnParameters":{"id":75769,"nodeType":"ParameterList","parameters":[],"src":"7063:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75852,"nodeType":"FunctionDefinition","src":"7446:381:159","nodes":[],"body":{"id":75851,"nodeType":"Block","src":"7602:225:159","nodes":[],"statements":[{"assignments":[75829,75831],"declarations":[{"constant":false,"id":75829,"mutability":"mutable","name":"actorId","nameLocation":"7621:7:159","nodeType":"VariableDeclaration","scope":75851,"src":"7613:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75828,"name":"address","nodeType":"ElementaryTypeName","src":"7613:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75831,"mutability":"mutable","name":"executableBalance","nameLocation":"7638:17:159","nodeType":"VariableDeclaration","scope":75851,"src":"7630:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75830,"name":"uint128","nodeType":"ElementaryTypeName","src":"7630:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75837,"initialValue":{"arguments":[{"id":75833,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75817,"src":"7688:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75834,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75819,"src":"7696:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75835,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75823,"src":"7702:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75832,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76180,"src":"7659:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7659:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7612:97:159"},{"expression":{"arguments":[{"expression":{"id":75842,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"7749:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7752:6:159","memberName":"origin","nodeType":"MemberAccess","src":"7749:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75844,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75821,"src":"7760:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75845,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75823,"src":"7769:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75846,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75831,"src":"7777:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":75839,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75829,"src":"7728:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75838,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"7720:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7720:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7737:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"7720:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7720:75:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75848,"nodeType":"ExpressionStatement","src":"7720:75:159"},{"expression":{"id":75849,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75829,"src":"7813:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75827,"id":75850,"nodeType":"Return","src":"7806:14:159"}]},"baseFunctions":[73718],"functionSelector":"8074b455","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"7455:13:159","parameters":{"id":75824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75817,"mutability":"mutable","name":"codeId","nameLocation":"7477:6:159","nodeType":"VariableDeclaration","scope":75852,"src":"7469:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7469:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75819,"mutability":"mutable","name":"salt","nameLocation":"7493:4:159","nodeType":"VariableDeclaration","scope":75852,"src":"7485:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7485:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75821,"mutability":"mutable","name":"payload","nameLocation":"7514:7:159","nodeType":"VariableDeclaration","scope":75852,"src":"7499:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75820,"name":"bytes","nodeType":"ElementaryTypeName","src":"7499:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75823,"mutability":"mutable","name":"_value","nameLocation":"7531:6:159","nodeType":"VariableDeclaration","scope":75852,"src":"7523:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75822,"name":"uint128","nodeType":"ElementaryTypeName","src":"7523:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7468:70:159"},"returnParameters":{"id":75827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75852,"src":"7589:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75825,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7588:9:159"},"scope":76872,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75910,"nodeType":"FunctionDefinition","src":"7833:596:159","nodes":[],"body":{"id":75909,"nodeType":"Block","src":"8049:380:159","nodes":[],"statements":[{"assignments":[75868,75870],"declarations":[{"constant":false,"id":75868,"mutability":"mutable","name":"actorId","nameLocation":"8068:7:159","nodeType":"VariableDeclaration","scope":75909,"src":"8060:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75867,"name":"address","nodeType":"ElementaryTypeName","src":"8060:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75870,"mutability":"mutable","name":"executableBalance","nameLocation":"8085:17:159","nodeType":"VariableDeclaration","scope":75909,"src":"8077:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75869,"name":"uint128","nodeType":"ElementaryTypeName","src":"8077:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":75876,"initialValue":{"arguments":[{"id":75872,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"8135:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75873,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75858,"src":"8143:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75874,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75862,"src":"8149:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":75871,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76180,"src":"8106:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":75875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8106:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"8059:97:159"},{"assignments":[75879],"declarations":[{"constant":false,"id":75879,"mutability":"mutable","name":"mirrorInstance","nameLocation":"8175:14:159","nodeType":"VariableDeclaration","scope":75909,"src":"8167:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":75878,"nodeType":"UserDefinedTypeName","pathNode":{"id":75877,"name":"IMirror","nameLocations":["8167:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"8167:7:159"},"referencedDeclaration":73387,"src":"8167:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":75883,"initialValue":{"arguments":[{"id":75881,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75868,"src":"8200:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75880,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"8192:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":75882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"8167:41:159"},{"expression":{"arguments":[{"id":75887,"name":"decoderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"8248:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":75891,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"8298:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75892,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75858,"src":"8306:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75889,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8281:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8285:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"8281:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8281:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75888,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8271:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8271:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75884,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"8219:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8234:13:159","memberName":"createDecoder","nodeType":"MemberAccess","referencedDeclaration":73375,"src":"8219:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":75895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8219:94:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75896,"nodeType":"ExpressionStatement","src":"8219:94:159"},{"expression":{"arguments":[{"expression":{"id":75900,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"8351:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":75901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8354:6:159","memberName":"origin","nodeType":"MemberAccess","src":"8351:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75902,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"8362:7:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":75903,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75862,"src":"8371:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":75904,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75870,"src":"8379:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75897,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"8324:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":75899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8339:11:159","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"8324:26:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":75905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8324:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75906,"nodeType":"ExpressionStatement","src":"8324:73:159"},{"expression":{"id":75907,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75868,"src":"8415:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75866,"id":75908,"nodeType":"Return","src":"8408:14:159"}]},"baseFunctions":[73733],"functionSelector":"666d124c","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"7842:24:159","parameters":{"id":75863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75854,"mutability":"mutable","name":"decoderImplementation","nameLocation":"7884:21:159","nodeType":"VariableDeclaration","scope":75910,"src":"7876:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75853,"name":"address","nodeType":"ElementaryTypeName","src":"7876:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75856,"mutability":"mutable","name":"codeId","nameLocation":"7923:6:159","nodeType":"VariableDeclaration","scope":75910,"src":"7915:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7915:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75858,"mutability":"mutable","name":"salt","nameLocation":"7947:4:159","nodeType":"VariableDeclaration","scope":75910,"src":"7939:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7939:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75860,"mutability":"mutable","name":"payload","nameLocation":"7976:7:159","nodeType":"VariableDeclaration","scope":75910,"src":"7961:22:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75859,"name":"bytes","nodeType":"ElementaryTypeName","src":"7961:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75862,"mutability":"mutable","name":"_value","nameLocation":"8001:6:159","nodeType":"VariableDeclaration","scope":75910,"src":"7993:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75861,"name":"uint128","nodeType":"ElementaryTypeName","src":"7993:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7866:147:159"},"returnParameters":{"id":75866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75910,"src":"8040:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75864,"name":"address","nodeType":"ElementaryTypeName","src":"8040:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8039:9:159"},"scope":76872,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76023,"nodeType":"FunctionDefinition","src":"8435:1117:159","nodes":[],"body":{"id":76022,"nodeType":"Block","src":"8542:1010:159","nodes":[],"statements":[{"assignments":[75922],"declarations":[{"constant":false,"id":75922,"mutability":"mutable","name":"router","nameLocation":"8568:6:159","nodeType":"VariableDeclaration","scope":76022,"src":"8552:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":75921,"nodeType":"UserDefinedTypeName","pathNode":{"id":75920,"name":"Storage","nameLocations":["8552:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"8552:7:159"},"referencedDeclaration":73470,"src":"8552:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":75925,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75923,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"8577:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":75924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8577:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8552:38:159"},{"assignments":[75927],"declarations":[{"constant":false,"id":75927,"mutability":"mutable","name":"codeCommetmentsHashes","nameLocation":"8614:21:159","nodeType":"VariableDeclaration","scope":76022,"src":"8601:34:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75926,"name":"bytes","nodeType":"ElementaryTypeName","src":"8601:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75928,"nodeType":"VariableDeclarationStatement","src":"8601:34:159"},{"body":{"id":76013,"nodeType":"Block","src":"8704:766:159","statements":[{"assignments":[75942],"declarations":[{"constant":false,"id":75942,"mutability":"mutable","name":"codeCommitment","nameLocation":"8742:14:159","nodeType":"VariableDeclaration","scope":76013,"src":"8718:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":75941,"nodeType":"UserDefinedTypeName","pathNode":{"id":75940,"name":"CodeCommitment","nameLocations":["8718:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"8718:14:159"},"referencedDeclaration":73479,"src":"8718:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"id":75946,"initialValue":{"baseExpression":{"id":75943,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75914,"src":"8759:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75945,"indexExpression":{"id":75944,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75930,"src":"8780:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8759:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"8718:64:159"},{"assignments":[75948],"declarations":[{"constant":false,"id":75948,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"8805:18:159","nodeType":"VariableDeclaration","scope":76013,"src":"8797:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8797:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75952,"initialValue":{"arguments":[{"id":75950,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75942,"src":"8846:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}],"id":75949,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76729,"src":"8826:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$73479_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.CodeCommitment calldata) pure returns (bytes32)"}},"id":75951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8826:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8797:64:159"},{"expression":{"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75953,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75927,"src":"8876:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75957,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75927,"src":"8913:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":75958,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75948,"src":"8936:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8900:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75954,"name":"bytes","nodeType":"ElementaryTypeName","src":"8900:5:159","typeDescriptions":{}}},"id":75956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8906:6:159","memberName":"concat","nodeType":"MemberAccess","src":"8900:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8900:55:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8876:79:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75961,"nodeType":"ExpressionStatement","src":"8876:79:159"},{"assignments":[75963],"declarations":[{"constant":false,"id":75963,"mutability":"mutable","name":"codeId","nameLocation":"8978:6:159","nodeType":"VariableDeclaration","scope":76013,"src":"8970:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8970:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75966,"initialValue":{"expression":{"id":75964,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75942,"src":"8987:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73476,"src":"8987:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8970:34:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":75968,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75922,"src":"9026:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9026:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75971,"indexExpression":{"id":75970,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75963,"src":"9039:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9026:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75972,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"9050:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9060:19:159","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":73472,"src":"9050:29:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"9026:53:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652073686f756c642062652072657175657374656420666f722076616c69646174696f6e","id":75975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9081:41:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""},"value":"code should be requested for validation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""}],"id":75967,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9018:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75977,"nodeType":"ExpressionStatement","src":"9018:105:159"},{"condition":{"expression":{"id":75978,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75942,"src":"9142:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":75979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9157:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"9142:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76011,"nodeType":"Block","src":"9345:115:159","statements":[{"expression":{"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9363:27:159","subExpression":{"baseExpression":{"expression":{"id":76000,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75922,"src":"9370:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9377:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9370:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76003,"indexExpression":{"id":76002,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75963,"src":"9383:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9370:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76005,"nodeType":"ExpressionStatement","src":"9363:27:159"},{"eventCall":{"arguments":[{"id":76007,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75963,"src":"9431:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":76008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9439:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76006,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"9414:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":76009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9414:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76010,"nodeType":"EmitStatement","src":"9409:36:159"}]},"id":76012,"nodeType":"IfStatement","src":"9138:322:159","trueBody":{"id":75999,"nodeType":"Block","src":"9164:175:159","statements":[{"expression":{"id":75987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75980,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75922,"src":"9182:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9189:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"9182:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":75984,"indexExpression":{"id":75982,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75963,"src":"9195:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9182:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75985,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"9205:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":75986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9215:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"9205:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"9182:42:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"id":75988,"nodeType":"ExpressionStatement","src":"9182:42:159"},{"expression":{"id":75992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9242:28:159","subExpression":{"expression":{"id":75989,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75922,"src":"9242:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":75991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9249:19:159","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":73463,"src":"9242:26:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75993,"nodeType":"ExpressionStatement","src":"9242:28:159"},{"eventCall":{"arguments":[{"id":75995,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75963,"src":"9311:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":75996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9319:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75994,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"9294:16:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":75997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9294:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75998,"nodeType":"EmitStatement","src":"9289:35:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75933,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75930,"src":"8666:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75934,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75914,"src":"8670:20:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":75935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8691:6:159","memberName":"length","nodeType":"MemberAccess","src":"8670:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8666:31:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76014,"initializationExpression":{"assignments":[75930],"declarations":[{"constant":false,"id":75930,"mutability":"mutable","name":"i","nameLocation":"8659:1:159","nodeType":"VariableDeclaration","scope":76014,"src":"8651:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75929,"name":"uint256","nodeType":"ElementaryTypeName","src":"8651:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75932,"initialValue":{"hexValue":"30","id":75931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8651:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8699:3:159","subExpression":{"id":75937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75930,"src":"8699:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75939,"nodeType":"ExpressionStatement","src":"8699:3:159"},"nodeType":"ForStatement","src":"8646:824:159"},{"expression":{"arguments":[{"arguments":[{"id":76017,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75927,"src":"9510:21:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76016,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9500:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76019,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75917,"src":"9534:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76015,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76269,"src":"9480:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9480:65:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76021,"nodeType":"ExpressionStatement","src":"9480:65:159"}]},"baseFunctions":[73743],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"8444:11:159","parameters":{"id":75918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75914,"mutability":"mutable","name":"codeCommitmentsArray","nameLocation":"8482:20:159","nodeType":"VariableDeclaration","scope":76023,"src":"8456:46:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment[]"},"typeName":{"baseType":{"id":75912,"nodeType":"UserDefinedTypeName","pathNode":{"id":75911,"name":"CodeCommitment","nameLocations":["8456:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"8456:14:159"},"referencedDeclaration":73479,"src":"8456:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"id":75913,"nodeType":"ArrayTypeName","src":"8456:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$73479_storage_$dyn_storage_ptr","typeString":"struct IRouter.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":75917,"mutability":"mutable","name":"signatures","nameLocation":"8521:10:159","nodeType":"VariableDeclaration","scope":76023,"src":"8504:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":75915,"name":"bytes","nodeType":"ElementaryTypeName","src":"8504:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":75916,"nodeType":"ArrayTypeName","src":"8504:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8455:77:159"},"returnParameters":{"id":75919,"nodeType":"ParameterList","parameters":[],"src":"8542:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76081,"nodeType":"FunctionDefinition","src":"9558:604:159","nodes":[],"body":{"id":76080,"nodeType":"Block","src":"9701:461:159","nodes":[],"statements":[{"assignments":[76036],"declarations":[{"constant":false,"id":76036,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"9724:22:159","nodeType":"VariableDeclaration","scope":76080,"src":"9711:35:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76035,"name":"bytes","nodeType":"ElementaryTypeName","src":"9711:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76037,"nodeType":"VariableDeclarationStatement","src":"9711:35:159"},{"body":{"id":76071,"nodeType":"Block","src":"9816:263:159","statements":[{"assignments":[76051],"declarations":[{"constant":false,"id":76051,"mutability":"mutable","name":"blockCommitment","nameLocation":"9855:15:159","nodeType":"VariableDeclaration","scope":76071,"src":"9830:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76050,"nodeType":"UserDefinedTypeName","pathNode":{"id":76049,"name":"BlockCommitment","nameLocations":["9830:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73490,"src":"9830:15:159"},"referencedDeclaration":73490,"src":"9830:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"id":76055,"initialValue":{"baseExpression":{"id":76052,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76027,"src":"9873:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76054,"indexExpression":{"id":76053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76039,"src":"9895:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9873:24:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"9830:67:159"},{"assignments":[76057],"declarations":[{"constant":false,"id":76057,"mutability":"mutable","name":"blockCommitmentHash","nameLocation":"9920:19:159","nodeType":"VariableDeclaration","scope":76071,"src":"9912:27:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9912:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76061,"initialValue":{"arguments":[{"id":76059,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76051,"src":"9955:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}],"id":76058,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76365,"src":"9942:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockCommitment_$73490_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.BlockCommitment calldata) returns (bytes32)"}},"id":76060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9942:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9912:59:159"},{"expression":{"id":76069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76062,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"9986:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76066,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"10024:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76067,"name":"blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76057,"src":"10048:19:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10011:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76063,"name":"bytes","nodeType":"ElementaryTypeName","src":"10011:5:159","typeDescriptions":{}}},"id":76065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10017:6:159","memberName":"concat","nodeType":"MemberAccess","src":"10011:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10011:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9986:82:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76070,"nodeType":"ExpressionStatement","src":"9986:82:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76042,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76039,"src":"9777:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76043,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76027,"src":"9781:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":76044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9803:6:159","memberName":"length","nodeType":"MemberAccess","src":"9781:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9777:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76072,"initializationExpression":{"assignments":[76039],"declarations":[{"constant":false,"id":76039,"mutability":"mutable","name":"i","nameLocation":"9770:1:159","nodeType":"VariableDeclaration","scope":76072,"src":"9762:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76038,"name":"uint256","nodeType":"ElementaryTypeName","src":"9762:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76041,"initialValue":{"hexValue":"30","id":76040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9774:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9762:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9811:3:159","subExpression":{"id":76046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76039,"src":"9811:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76048,"nodeType":"ExpressionStatement","src":"9811:3:159"},"nodeType":"ForStatement","src":"9757:322:159"},{"expression":{"arguments":[{"arguments":[{"id":76075,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"10119:22:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76074,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10109:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10109:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76077,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76030,"src":"10144:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":76073,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76269,"src":"10089:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":76078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10089:66:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76079,"nodeType":"ExpressionStatement","src":"10089:66:159"}]},"baseFunctions":[73753],"functionSelector":"26637f6d","implemented":true,"kind":"function","modifiers":[{"id":76033,"kind":"modifierInvocation","modifierName":{"id":76032,"name":"nonReentrant","nameLocations":["9684:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":44000,"src":"9684:12:159"},"nodeType":"ModifierInvocation","src":"9684:12:159"}],"name":"commitBlocks","nameLocation":"9567:12:159","parameters":{"id":76031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76027,"mutability":"mutable","name":"blockCommitmentsArray","nameLocation":"9607:21:159","nodeType":"VariableDeclaration","scope":76081,"src":"9580:48:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment[]"},"typeName":{"baseType":{"id":76025,"nodeType":"UserDefinedTypeName","pathNode":{"id":76024,"name":"BlockCommitment","nameLocations":["9580:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73490,"src":"9580:15:159"},"referencedDeclaration":73490,"src":"9580:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"id":76026,"nodeType":"ArrayTypeName","src":"9580:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$73490_storage_$dyn_storage_ptr","typeString":"struct IRouter.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":76030,"mutability":"mutable","name":"signatures","nameLocation":"9647:10:159","nodeType":"VariableDeclaration","scope":76081,"src":"9630:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76028,"name":"bytes","nodeType":"ElementaryTypeName","src":"9630:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76029,"nodeType":"ArrayTypeName","src":"9630:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9579:79:159"},"returnParameters":{"id":76034,"nodeType":"ParameterList","parameters":[],"src":"9701:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76180,"nodeType":"FunctionDefinition","src":"10204:1054:159","nodes":[],"body":{"id":76179,"nodeType":"Block","src":"10343:915:159","nodes":[],"statements":[{"assignments":[76096],"declarations":[{"constant":false,"id":76096,"mutability":"mutable","name":"router","nameLocation":"10369:6:159","nodeType":"VariableDeclaration","scope":76179,"src":"10353:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76095,"nodeType":"UserDefinedTypeName","pathNode":{"id":76094,"name":"Storage","nameLocations":["10353:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"10353:7:159"},"referencedDeclaration":73470,"src":"10353:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76099,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76097,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"10378:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10378:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10353:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"},"id":76107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76101,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76096,"src":"10410:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10417:5:159","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":73461,"src":"10410:12:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$73474_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":76104,"indexExpression":{"id":76103,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"10423:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10410:20:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76105,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73474,"src":"10434:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$73474_$","typeString":"type(enum IRouter.CodeState)"}},"id":76106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10444:9:159","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":73473,"src":"10434:19:159","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$73474","typeString":"enum IRouter.CodeState"}},"src":"10410:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":76108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10455:48:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""},"value":"code must be validated before program creation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""}],"id":76100,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10402:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10402:102:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76110,"nodeType":"ExpressionStatement","src":"10402:102:159"},{"assignments":[76112],"declarations":[{"constant":false,"id":76112,"mutability":"mutable","name":"baseFeeValue","nameLocation":"10523:12:159","nodeType":"VariableDeclaration","scope":76179,"src":"10515:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76111,"name":"uint128","nodeType":"ElementaryTypeName","src":"10515:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76115,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76113,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75763,"src":"10538:7:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":76114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10538:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10515:32:159"},{"assignments":[76117],"declarations":[{"constant":false,"id":76117,"mutability":"mutable","name":"executableBalance","nameLocation":"10625:17:159","nodeType":"VariableDeclaration","scope":76179,"src":"10617:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76116,"name":"uint128","nodeType":"ElementaryTypeName","src":"10617:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76129,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10653:2:159","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76122,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76096,"src":"10674:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10681:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"10674:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76121,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"10659:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$43166_$","typeString":"type(contract IERC20Metadata)"}},"id":76124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$43166","typeString":"contract IERC20Metadata"}},"id":76125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:8:159","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":43165,"src":"10659:43:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":76126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:45:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10653:51:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10645:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76118,"name":"uint128","nodeType":"ElementaryTypeName","src":"10645:7:159","typeDescriptions":{}}},"id":76128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10645:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10617:88:159"},{"assignments":[76131],"declarations":[{"constant":false,"id":76131,"mutability":"mutable","name":"totalValue","nameLocation":"10724:10:159","nodeType":"VariableDeclaration","scope":76179,"src":"10716:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76130,"name":"uint128","nodeType":"ElementaryTypeName","src":"10716:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76137,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76132,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"10737:12:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76133,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76117,"src":"10752:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10737:32:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76135,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76087,"src":"10772:6:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10737:41:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10716:62:159"},{"expression":{"arguments":[{"id":76139,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"10804:10:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76138,"name":"_retrieveValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"10789:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10789:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76141,"nodeType":"ExpressionStatement","src":"10789:26:159"},{"assignments":[76143],"declarations":[{"constant":false,"id":76143,"mutability":"mutable","name":"actorId","nameLocation":"10984:7:159","nodeType":"VariableDeclaration","scope":76179,"src":"10976:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76142,"name":"address","nodeType":"ElementaryTypeName","src":"10976:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76156,"initialValue":{"arguments":[{"expression":{"id":76146,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76096,"src":"11020:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11027:11:159","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":73439,"src":"11020:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":76151,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"11067:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76152,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"11075:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11050:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11054:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11050:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11050:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76148,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11040:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11040:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76144,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41840,"src":"10994:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41840_$","typeString":"type(library Clones)"}},"id":76145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11001:18:159","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41758,"src":"10994:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":76155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10994:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10976:106:159"},{"expression":{"id":76163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76157,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76096,"src":"11093:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"11093:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76161,"indexExpression":{"id":76159,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"11109:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11093:24:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76162,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"11120:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11093:33:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76164,"nodeType":"ExpressionStatement","src":"11093:33:159"},{"expression":{"id":76168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11136:22:159","subExpression":{"expression":{"id":76165,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76096,"src":"11136:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11143:13:159","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":73469,"src":"11136:20:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76169,"nodeType":"ExpressionStatement","src":"11136:22:159"},{"eventCall":{"arguments":[{"id":76171,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"11189:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76172,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"11198:6:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76170,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73557,"src":"11174:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":76173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11174:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76174,"nodeType":"EmitStatement","src":"11169:36:159"},{"expression":{"components":[{"id":76175,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"11224:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76176,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76117,"src":"11233:17:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":76177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11223:28:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"functionReturnParameters":76093,"id":76178,"nodeType":"Return","src":"11216:35:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgramWithoutMessage","nameLocation":"10213:28:159","parameters":{"id":76088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76083,"mutability":"mutable","name":"codeId","nameLocation":"10250:6:159","nodeType":"VariableDeclaration","scope":76180,"src":"10242:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10242:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76085,"mutability":"mutable","name":"salt","nameLocation":"10266:4:159","nodeType":"VariableDeclaration","scope":76180,"src":"10258:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10258:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76087,"mutability":"mutable","name":"_value","nameLocation":"10280:6:159","nodeType":"VariableDeclaration","scope":76180,"src":"10272:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76086,"name":"uint128","nodeType":"ElementaryTypeName","src":"10272:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10241:46:159"},"returnParameters":{"id":76093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76180,"src":"10321:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76089,"name":"address","nodeType":"ElementaryTypeName","src":"10321:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76180,"src":"10330:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76091,"name":"uint128","nodeType":"ElementaryTypeName","src":"10330:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10320:18:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76269,"nodeType":"FunctionDefinition","src":"11264:844:159","nodes":[],"body":{"id":76268,"nodeType":"Block","src":"11353:755:159","nodes":[],"statements":[{"assignments":[76190],"declarations":[{"constant":false,"id":76190,"mutability":"mutable","name":"router","nameLocation":"11379:6:159","nodeType":"VariableDeclaration","scope":76268,"src":"11363:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76189,"nodeType":"UserDefinedTypeName","pathNode":{"id":76188,"name":"Storage","nameLocations":["11363:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"11363:7:159"},"referencedDeclaration":73470,"src":"11363:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76193,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76191,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"11388:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11388:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11363:38:159"},{"assignments":[76195],"declarations":[{"constant":false,"id":76195,"mutability":"mutable","name":"threshold","nameLocation":"11420:9:159","nodeType":"VariableDeclaration","scope":76268,"src":"11412:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76194,"name":"uint256","nodeType":"ElementaryTypeName","src":"11412:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76198,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76196,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75600,"src":"11432:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11432:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11412:41:159"},{"assignments":[76200],"declarations":[{"constant":false,"id":76200,"mutability":"mutable","name":"messageHash","nameLocation":"11472:11:159","nodeType":"VariableDeclaration","scope":76268,"src":"11464:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11464:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76211,"initialValue":{"arguments":[{"arguments":[{"id":76208,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76182,"src":"11549:8:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11532:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11536:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11532:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11532:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76203,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11494:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76872","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76872","typeString":"contract Router"}],"id":76202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11486:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76201,"name":"address","nodeType":"ElementaryTypeName","src":"11486:7:159","typeDescriptions":{}}},"id":76204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11486:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11500:31:159","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"11486:45:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":76210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11486:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11464:95:159"},{"assignments":[76213],"declarations":[{"constant":false,"id":76213,"mutability":"mutable","name":"validSignatures","nameLocation":"11577:15:159","nodeType":"VariableDeclaration","scope":76268,"src":"11569:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76212,"name":"uint256","nodeType":"ElementaryTypeName","src":"11569:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76215,"initialValue":{"hexValue":"30","id":76214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11595:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11569:27:159"},{"body":{"id":76259,"nodeType":"Block","src":"11655:368:159","statements":[{"assignments":[76228],"declarations":[{"constant":false,"id":76228,"mutability":"mutable","name":"signature","nameLocation":"11684:9:159","nodeType":"VariableDeclaration","scope":76259,"src":"11669:24:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76227,"name":"bytes","nodeType":"ElementaryTypeName","src":"11669:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76232,"initialValue":{"baseExpression":{"id":76229,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11696:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76231,"indexExpression":{"id":76230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"11707:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11696:13:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11669:40:159"},{"assignments":[76234],"declarations":[{"constant":false,"id":76234,"mutability":"mutable","name":"validator","nameLocation":"11732:9:159","nodeType":"VariableDeclaration","scope":76259,"src":"11724:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76233,"name":"address","nodeType":"ElementaryTypeName","src":"11724:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76239,"initialValue":{"arguments":[{"id":76237,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76228,"src":"11764:9:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":76235,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76200,"src":"11744:11:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11756:7:159","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":45005,"src":"11744:19:159","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":76238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11744:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11724:50:159"},{"condition":{"baseExpression":{"expression":{"id":76240,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"11793:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11800:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"11793:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76243,"indexExpression":{"id":76242,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"11811:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11793:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76257,"nodeType":"Block","src":"11943:70:159","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":76253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11969:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"696e636f7272656374207369676e6174757265","id":76254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11976:21:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""},"value":"incorrect signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""}],"id":76252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11961:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11961:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76256,"nodeType":"ExpressionStatement","src":"11961:37:159"}]},"id":76258,"nodeType":"IfStatement","src":"11789:224:159","trueBody":{"id":76251,"nodeType":"Block","src":"11823:114:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11845:17:159","subExpression":{"id":76244,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76213,"src":"11847:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76246,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76195,"src":"11866:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11845:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76250,"nodeType":"IfStatement","src":"11841:82:159","trueBody":{"id":76249,"nodeType":"Block","src":"11877:46:159","statements":[{"id":76248,"nodeType":"Break","src":"11899:5:159"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"11627:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76221,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11631:10:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":76222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11642:6:159","memberName":"length","nodeType":"MemberAccess","src":"11631:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11627:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76260,"initializationExpression":{"assignments":[76217],"declarations":[{"constant":false,"id":76217,"mutability":"mutable","name":"i","nameLocation":"11620:1:159","nodeType":"VariableDeclaration","scope":76260,"src":"11612:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76216,"name":"uint256","nodeType":"ElementaryTypeName","src":"11612:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76219,"initialValue":{"hexValue":"30","id":76218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11624:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11612:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11650:3:159","subExpression":{"id":76224,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"11650:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76226,"nodeType":"ExpressionStatement","src":"11650:3:159"},"nodeType":"ForStatement","src":"11607:416:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76262,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76213,"src":"12041:15:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76263,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76195,"src":"12060:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12041:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656e6f7567682076616c6964207369676e617475726573","id":76265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12071:29:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""},"value":"not enough valid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""}],"id":76261,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12033:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12033:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76267,"nodeType":"ExpressionStatement","src":"12033:68:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateSignatures","nameLocation":"11273:19:159","parameters":{"id":76186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76182,"mutability":"mutable","name":"dataHash","nameLocation":"11301:8:159","nodeType":"VariableDeclaration","scope":76269,"src":"11293:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11293:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76185,"mutability":"mutable","name":"signatures","nameLocation":"11328:10:159","nodeType":"VariableDeclaration","scope":76269,"src":"11311:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":76183,"name":"bytes","nodeType":"ElementaryTypeName","src":"11311:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":76184,"nodeType":"ArrayTypeName","src":"11311:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11292:47:159"},"returnParameters":{"id":76187,"nodeType":"ParameterList","parameters":[],"src":"11353:0:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76365,"nodeType":"FunctionDefinition","src":"12114:1244:159","nodes":[],"body":{"id":76364,"nodeType":"Block","src":"12204:1154:159","nodes":[],"statements":[{"assignments":[76279],"declarations":[{"constant":false,"id":76279,"mutability":"mutable","name":"router","nameLocation":"12230:6:159","nodeType":"VariableDeclaration","scope":76364,"src":"12214:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76278,"nodeType":"UserDefinedTypeName","pathNode":{"id":76277,"name":"Storage","nameLocations":["12214:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"12214:7:159"},"referencedDeclaration":73470,"src":"12214:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76280,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"12239:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12239:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12214:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76284,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76279,"src":"12284:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12291:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12284:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":76286,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"12318:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12334:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"12318:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12284:68:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d69746d656e742068617368","id":76289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12354:34:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""},"value":"invalid previous commitment hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""}],"id":76283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12263:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12263:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76291,"nodeType":"ExpressionStatement","src":"12263:135:159"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":76294,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"12435:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12451:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"12435:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76293,"name":"_isPredecessorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"12416:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12416:49:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f756e64","id":76297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12467:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""},"value":"allowed predecessor block not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""}],"id":76292,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12408:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12408:97:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76299,"nodeType":"ExpressionStatement","src":"12408:97:159"},{"expression":{"id":76305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76300,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76279,"src":"12645:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12652:23:159","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73443,"src":"12645:30:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76303,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"12678:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12694:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"12678:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12645:58:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76306,"nodeType":"ExpressionStatement","src":"12645:58:159"},{"assignments":[76308],"declarations":[{"constant":false,"id":76308,"mutability":"mutable","name":"transitionsHashes","nameLocation":"12727:17:159","nodeType":"VariableDeclaration","scope":76364,"src":"12714:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76307,"name":"bytes","nodeType":"ElementaryTypeName","src":"12714:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76309,"nodeType":"VariableDeclarationStatement","src":"12714:30:159"},{"body":{"id":76345,"nodeType":"Block","src":"12820:255:159","statements":[{"assignments":[76324],"declarations":[{"constant":false,"id":76324,"mutability":"mutable","name":"stateTransition","nameLocation":"12859:15:159","nodeType":"VariableDeclaration","scope":76345,"src":"12834:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76323,"nodeType":"UserDefinedTypeName","pathNode":{"id":76322,"name":"StateTransition","nameLocations":["12834:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73507,"src":"12834:15:159"},"referencedDeclaration":73507,"src":"12834:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"id":76329,"initialValue":{"baseExpression":{"expression":{"id":76325,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"12877:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12893:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73489,"src":"12877:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73507_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76328,"indexExpression":{"id":76327,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76311,"src":"12905:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12877:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"12834:73:159"},{"assignments":[76331],"declarations":[{"constant":false,"id":76331,"mutability":"mutable","name":"transitionHash","nameLocation":"12930:14:159","nodeType":"VariableDeclaration","scope":76345,"src":"12922:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12922:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76335,"initialValue":{"arguments":[{"id":76333,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76324,"src":"12966:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}],"id":76332,"name":"_doStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76627,"src":"12947:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StateTransition_$73507_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.StateTransition calldata) returns (bytes32)"}},"id":76334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12947:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12922:60:159"},{"expression":{"id":76343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76336,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"12997:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76340,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"13030:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76341,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76331,"src":"13049:14:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13017:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76337,"name":"bytes","nodeType":"ElementaryTypeName","src":"13017:5:159","typeDescriptions":{}}},"id":76339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13023:6:159","memberName":"concat","nodeType":"MemberAccess","src":"13017:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13017:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12997:67:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76344,"nodeType":"ExpressionStatement","src":"12997:67:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76314,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76311,"src":"12775:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76315,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"12779:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12795:11:159","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":73489,"src":"12779:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$73507_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":76317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12807:6:159","memberName":"length","nodeType":"MemberAccess","src":"12779:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12775:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76346,"initializationExpression":{"assignments":[76311],"declarations":[{"constant":false,"id":76311,"mutability":"mutable","name":"i","nameLocation":"12768:1:159","nodeType":"VariableDeclaration","scope":76346,"src":"12760:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76310,"name":"uint256","nodeType":"ElementaryTypeName","src":"12760:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76313,"initialValue":{"hexValue":"30","id":76312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12772:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12760:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12815:3:159","subExpression":{"id":76319,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76311,"src":"12815:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76321,"nodeType":"ExpressionStatement","src":"12815:3:159"},"nodeType":"ForStatement","src":"12755:320:159"},{"eventCall":{"arguments":[{"expression":{"id":76348,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"13105:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13121:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"13105:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76347,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"13090:14:159","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":76350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13090:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76351,"nodeType":"EmitStatement","src":"13085:46:159"},{"expression":{"arguments":[{"expression":{"id":76353,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"13183:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13199:9:159","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":73481,"src":"13183:25:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76355,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"13222:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13238:18:159","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":73483,"src":"13222:34:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76357,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"13270:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":76358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13286:13:159","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":73485,"src":"13270:29:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76360,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"13323:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76359,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13313:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13313:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76352,"name":"_blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76651,"src":"13149:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13149:202:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76276,"id":76363,"nodeType":"Return","src":"13142:209:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"12123:12:159","parameters":{"id":76273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76272,"mutability":"mutable","name":"blockCommitment","nameLocation":"12161:15:159","nodeType":"VariableDeclaration","scope":76365,"src":"12136:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":76271,"nodeType":"UserDefinedTypeName","pathNode":{"id":76270,"name":"BlockCommitment","nameLocations":["12136:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73490,"src":"12136:15:159"},"referencedDeclaration":73490,"src":"12136:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$73490_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"src":"12135:42:159"},"returnParameters":{"id":76276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76365,"src":"12195:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12195:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12194:9:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76409,"nodeType":"FunctionDefinition","src":"13364:338:159","nodes":[],"body":{"id":76408,"nodeType":"Block","src":"13434:268:159","nodes":[],"statements":[{"body":{"id":76404,"nodeType":"Block","src":"13491:183:159","statements":[{"assignments":[76386],"declarations":[{"constant":false,"id":76386,"mutability":"mutable","name":"ret","nameLocation":"13513:3:159","nodeType":"VariableDeclaration","scope":76404,"src":"13505:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13505:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76390,"initialValue":{"arguments":[{"id":76388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"13529:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76387,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"13519:9:159","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":76389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13519:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13505:26:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76391,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"13549:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76392,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76367,"src":"13556:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13549:11:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76397,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"13616:3:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13623:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13616:8:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76402,"nodeType":"IfStatement","src":"13612:52:159","trueBody":{"id":76401,"nodeType":"Block","src":"13626:38:159","statements":[{"id":76400,"nodeType":"Break","src":"13644:5:159"}]}},"id":76403,"nodeType":"IfStatement","src":"13545:119:159","trueBody":{"id":76396,"nodeType":"Block","src":"13562:44:159","statements":[{"expression":{"hexValue":"74727565","id":76394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13587:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":76371,"id":76395,"nodeType":"Return","src":"13580:11:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"13479:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13483:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13479:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76405,"initializationExpression":{"assignments":[76373],"declarations":[{"constant":false,"id":76373,"mutability":"mutable","name":"i","nameLocation":"13457:1:159","nodeType":"VariableDeclaration","scope":76405,"src":"13449:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76372,"name":"uint256","nodeType":"ElementaryTypeName","src":"13449:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76378,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76374,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13461:5:159","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":76375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13467:6:159","memberName":"number","nodeType":"MemberAccess","src":"13461:12:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13476:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13461:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13449:28:159"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":76383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13486:3:159","subExpression":{"id":76382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"13486:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76384,"nodeType":"ExpressionStatement","src":"13486:3:159"},"nodeType":"ForStatement","src":"13444:230:159"},{"expression":{"hexValue":"66616c7365","id":76406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13690:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":76371,"id":76407,"nodeType":"Return","src":"13683:12:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPredecessorHash","nameLocation":"13373:18:159","parameters":{"id":76368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76367,"mutability":"mutable","name":"hash","nameLocation":"13400:4:159","nodeType":"VariableDeclaration","scope":76409,"src":"13392:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13392:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13391:14:159"},"returnParameters":{"id":76371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76409,"src":"13428:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76369,"name":"bool","nodeType":"ElementaryTypeName","src":"13428:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13427:6:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76627,"nodeType":"FunctionDefinition","src":"13708:2340:159","nodes":[],"body":{"id":76626,"nodeType":"Block","src":"13804:2244:159","nodes":[],"statements":[{"assignments":[76419],"declarations":[{"constant":false,"id":76419,"mutability":"mutable","name":"router","nameLocation":"13830:6:159","nodeType":"VariableDeclaration","scope":76626,"src":"13814:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76418,"nodeType":"UserDefinedTypeName","pathNode":{"id":76417,"name":"Storage","nameLocations":["13814:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"13814:7:159"},"referencedDeclaration":73470,"src":"13814:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76422,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76420,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"13839:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13839:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13814:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":76424,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76419,"src":"13871:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13878:8:159","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":73467,"src":"13871:15:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":76428,"indexExpression":{"expression":{"id":76426,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"13887:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13903:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"13887:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:40:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13915:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13871:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":76431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13918:49:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""},"value":"couldn't perform transition for unknown program"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""}],"id":76423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13863:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13863:105:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76433,"nodeType":"ExpressionStatement","src":"13863:105:159"},{"assignments":[76436],"declarations":[{"constant":false,"id":76436,"mutability":"mutable","name":"wrappedVaraActor","nameLocation":"13992:16:159","nodeType":"VariableDeclaration","scope":76626,"src":"13979:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"},"typeName":{"id":76435,"nodeType":"UserDefinedTypeName","pathNode":{"id":76434,"name":"IWrappedVara","nameLocations":["13979:12:159"],"nodeType":"IdentifierPath","referencedDeclaration":73765,"src":"13979:12:159"},"referencedDeclaration":73765,"src":"13979:12:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":76441,"initialValue":{"arguments":[{"expression":{"id":76438,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76419,"src":"14024:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14031:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"14024:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76437,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73765,"src":"14011:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$73765_$","typeString":"type(contract IWrappedVara)"}},"id":76440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14011:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"13979:64:159"},{"expression":{"arguments":[{"expression":{"id":76445,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14079:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14095:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"14079:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76447,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14104:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14120:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"14104:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76442,"name":"wrappedVaraActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76436,"src":"14053:16:159","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$73765","typeString":"contract IWrappedVara"}},"id":76444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14070:8:159","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43107,"src":"14053:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":76449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14053:82:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76450,"nodeType":"ExpressionStatement","src":"14053:82:159"},{"assignments":[76453],"declarations":[{"constant":false,"id":76453,"mutability":"mutable","name":"mirrorActor","nameLocation":"14154:11:159","nodeType":"VariableDeclaration","scope":76626,"src":"14146:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"},"typeName":{"id":76452,"nodeType":"UserDefinedTypeName","pathNode":{"id":76451,"name":"IMirror","nameLocations":["14146:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73387,"src":"14146:7:159"},"referencedDeclaration":73387,"src":"14146:7:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"visibility":"internal"}],"id":76458,"initialValue":{"arguments":[{"expression":{"id":76455,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14176:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14192:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"14176:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76454,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"14168:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73387_$","typeString":"type(contract IMirror)"}},"id":76457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14168:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"14146:54:159"},{"assignments":[76460],"declarations":[{"constant":false,"id":76460,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"14224:16:159","nodeType":"VariableDeclaration","scope":76626,"src":"14211:29:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76459,"name":"bytes","nodeType":"ElementaryTypeName","src":"14211:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76461,"nodeType":"VariableDeclarationStatement","src":"14211:29:159"},{"body":{"id":76510,"nodeType":"Block","src":"14316:367:159","statements":[{"assignments":[76476],"declarations":[{"constant":false,"id":76476,"mutability":"mutable","name":"valueClaim","nameLocation":"14350:10:159","nodeType":"VariableDeclaration","scope":76510,"src":"14330:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim"},"typeName":{"id":76475,"nodeType":"UserDefinedTypeName","pathNode":{"id":76474,"name":"ValueClaim","nameLocations":["14330:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":73514,"src":"14330:10:159"},"referencedDeclaration":73514,"src":"14330:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_storage_ptr","typeString":"struct IRouter.ValueClaim"}},"visibility":"internal"}],"id":76481,"initialValue":{"baseExpression":{"expression":{"id":76477,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14363:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14379:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73502,"src":"14363:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73514_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76480,"indexExpression":{"id":76479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"14391:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14363:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"14330:63:159"},{"expression":{"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76482,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"14408:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76486,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"14457:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":76489,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76476,"src":"14492:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14503:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73509,"src":"14492:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76491,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76476,"src":"14514:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14525:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73511,"src":"14514:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76493,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76476,"src":"14538:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14549:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14538:16:159","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":76487,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14475:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14479:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"14475:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14475:80: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":76484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14427:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76483,"name":"bytes","nodeType":"ElementaryTypeName","src":"14427:5:159","typeDescriptions":{}}},"id":76485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14433:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14427:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14427:142:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14408:161:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76498,"nodeType":"ExpressionStatement","src":"14408:161:159"},{"expression":{"arguments":[{"expression":{"id":76502,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76476,"src":"14609:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14620:9:159","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":73509,"src":"14609:20:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76504,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76476,"src":"14631:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14642:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73511,"src":"14631:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76506,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76476,"src":"14655:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$73514_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":76507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14666:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73513,"src":"14655:16:159","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":76499,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"14584:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14596:12:159","memberName":"valueClaimed","nodeType":"MemberAccess","referencedDeclaration":73368,"src":"14584:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128) external"}},"id":76508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14584:88:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76509,"nodeType":"ExpressionStatement","src":"14584:88:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76466,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"14271:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76467,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14275:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14291:11:159","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":73502,"src":"14275:27:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$73514_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14303:6:159","memberName":"length","nodeType":"MemberAccess","src":"14275:34:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14271:38:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76511,"initializationExpression":{"assignments":[76463],"declarations":[{"constant":false,"id":76463,"mutability":"mutable","name":"i","nameLocation":"14264:1:159","nodeType":"VariableDeclaration","scope":76511,"src":"14256:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76462,"name":"uint256","nodeType":"ElementaryTypeName","src":"14256:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76465,"initialValue":{"hexValue":"30","id":76464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14268:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14256:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14311:3:159","subExpression":{"id":76471,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"14311:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76473,"nodeType":"ExpressionStatement","src":"14311:3:159"},"nodeType":"ForStatement","src":"14251:432:159"},{"assignments":[76513],"declarations":[{"constant":false,"id":76513,"mutability":"mutable","name":"messagesHashes","nameLocation":"14706:14:159","nodeType":"VariableDeclaration","scope":76626,"src":"14693:27:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76512,"name":"bytes","nodeType":"ElementaryTypeName","src":"14693:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":76514,"nodeType":"VariableDeclarationStatement","src":"14693:27:159"},{"body":{"id":76584,"nodeType":"Block","src":"14793:764:159","statements":[{"assignments":[76529],"declarations":[{"constant":false,"id":76529,"mutability":"mutable","name":"outgoingMessage","nameLocation":"14832:15:159","nodeType":"VariableDeclaration","scope":76584,"src":"14807:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76528,"nodeType":"UserDefinedTypeName","pathNode":{"id":76527,"name":"OutgoingMessage","nameLocations":["14807:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73526,"src":"14807:15:159"},"referencedDeclaration":73526,"src":"14807:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"id":76534,"initialValue":{"baseExpression":{"expression":{"id":76530,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14850:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14866:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73506,"src":"14850:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73526_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76533,"indexExpression":{"id":76532,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76516,"src":"14875:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14850:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"nodeType":"VariableDeclarationStatement","src":"14807:70:159"},{"expression":{"id":76544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76535,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"14892:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76539,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"14922:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":76541,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"14959:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}],"id":76540,"name":"_outgoingMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"14938:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutgoingMessage_$73526_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.OutgoingMessage calldata) pure returns (bytes32)"}},"id":76542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14938:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14909:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":76536,"name":"bytes","nodeType":"ElementaryTypeName","src":"14909:5:159","typeDescriptions":{}}},"id":76538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14915:6:159","memberName":"concat","nodeType":"MemberAccess","src":"14909:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14892:84:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":76545,"nodeType":"ExpressionStatement","src":"14892:84:159"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76546,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"14995:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15011:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"14995:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15024:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73528,"src":"14995:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15030:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14995:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76582,"nodeType":"Block","src":"15230:317:159","statements":[{"expression":{"arguments":[{"expression":{"id":76568,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15291:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15307:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"15291:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76570,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15340:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15356:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"15340:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76572,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15385:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15401:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15385:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76574,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15428:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15444:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"15428:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15457:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73528,"src":"15428:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76577,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15481:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15497:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"15481:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15510:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"15481:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76565,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"15248:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15260:9:159","memberName":"replySent","nodeType":"MemberAccess","referencedDeclaration":73359,"src":"15248:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (address,bytes memory,uint128,bytes32,bytes4) external"}},"id":76580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15248:284:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76581,"nodeType":"ExpressionStatement","src":"15248:284:159"}]},"id":76583,"nodeType":"IfStatement","src":"14991:556:159","trueBody":{"id":76564,"nodeType":"Block","src":"15033:191:159","statements":[{"expression":{"arguments":[{"expression":{"id":76554,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15096:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15112:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73516,"src":"15096:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76556,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15116:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15132:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"15116:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76558,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15145:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15161:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"15145:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76560,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"15170:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15186:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"15170:21:159","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"}],"expression":{"id":76551,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"15051:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15063:11:159","memberName":"messageSent","nodeType":"MemberAccess","referencedDeclaration":73346,"src":"15051:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128) external"}},"id":76562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15051:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76563,"nodeType":"ExpressionStatement","src":"15051:158:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76519,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76516,"src":"14751:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76520,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14755:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14771:8:159","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":73506,"src":"14755:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$73526_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":76522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14780:6:159","memberName":"length","nodeType":"MemberAccess","src":"14755:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14751:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76585,"initializationExpression":{"assignments":[76516],"declarations":[{"constant":false,"id":76516,"mutability":"mutable","name":"i","nameLocation":"14744:1:159","nodeType":"VariableDeclaration","scope":76585,"src":"14736:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76515,"name":"uint256","nodeType":"ElementaryTypeName","src":"14736:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76518,"initialValue":{"hexValue":"30","id":76517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14748:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14736:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14788:3:159","subExpression":{"id":76524,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76516,"src":"14788:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76526,"nodeType":"ExpressionStatement","src":"14788:3:159"},"nodeType":"ForStatement","src":"14731:826:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76586,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15571:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15587:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15571:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15608: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":76589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15600:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76588,"name":"address","nodeType":"ElementaryTypeName","src":"15600:7:159","typeDescriptions":{}}},"id":76591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15600:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15571:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76601,"nodeType":"IfStatement","src":"15567:121:159","trueBody":{"id":76600,"nodeType":"Block","src":"15612:76:159","statements":[{"expression":{"arguments":[{"expression":{"id":76596,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15651:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15667:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15651:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":76593,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"15626:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15638:12:159","memberName":"setInheritor","nodeType":"MemberAccess","referencedDeclaration":73335,"src":"15626:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15626:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76599,"nodeType":"ExpressionStatement","src":"15626:51:159"}]}},{"expression":{"arguments":[{"expression":{"id":76605,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15722:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15738:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"15722:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76602,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76453,"src":"15698:11:159","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73387","typeString":"contract IMirror"}},"id":76604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15710:11:159","memberName":"updateState","nodeType":"MemberAccess","referencedDeclaration":73330,"src":"15698:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15698:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76608,"nodeType":"ExpressionStatement","src":"15698:53:159"},{"expression":{"arguments":[{"expression":{"id":76610,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15803:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15819:7:159","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":73492,"src":"15803:23:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76612,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15840:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15856:12:159","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":73494,"src":"15840:28:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76614,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15882:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15898:9:159","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":73496,"src":"15882:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76616,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"15921:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":76617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15937:14:159","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":73498,"src":"15921:30:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":76619,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"15975:16:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76618,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15965:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15965:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76622,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"16016:14:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76621,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16006:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16006:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76609,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76681,"src":"15769:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,address,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":76624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15769:272:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76416,"id":76625,"nodeType":"Return","src":"15762:279:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_doStateTransition","nameLocation":"13717:18:159","parameters":{"id":76413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76412,"mutability":"mutable","name":"stateTransition","nameLocation":"13761:15:159","nodeType":"VariableDeclaration","scope":76627,"src":"13736:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":76411,"nodeType":"UserDefinedTypeName","pathNode":{"id":76410,"name":"StateTransition","nameLocations":["13736:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73507,"src":"13736:15:159"},"referencedDeclaration":73507,"src":"13736:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$73507_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"src":"13735:42:159"},"returnParameters":{"id":76416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76627,"src":"13795:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13795:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13794:9:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76651,"nodeType":"FunctionDefinition","src":"16054:320:159","nodes":[],"body":{"id":76650,"nodeType":"Block","src":"16254:120:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76643,"name":"blockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76629,"src":"16298:9:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76644,"name":"prevCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76631,"src":"16309:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76645,"name":"predBlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16329:13:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76646,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76635,"src":"16344:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16281:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16285:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16281:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16281:85:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76640,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16271:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16271:96:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76639,"id":76649,"nodeType":"Return","src":"16264:103:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_blockCommitmentHash","nameLocation":"16063:20:159","parameters":{"id":76636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76629,"mutability":"mutable","name":"blockHash","nameLocation":"16101:9:159","nodeType":"VariableDeclaration","scope":76651,"src":"16093:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16093:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76631,"mutability":"mutable","name":"prevCommitmentHash","nameLocation":"16128:18:159","nodeType":"VariableDeclaration","scope":76651,"src":"16120:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16120:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76633,"mutability":"mutable","name":"predBlockHash","nameLocation":"16164:13:159","nodeType":"VariableDeclaration","scope":76651,"src":"16156:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16156:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76635,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"16195:21:159","nodeType":"VariableDeclaration","scope":76651,"src":"16187:29:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16187:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16083:139:159"},"returnParameters":{"id":76639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76651,"src":"16245:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16245:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16244:9:159"},"scope":76872,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76681,"nodeType":"FunctionDefinition","src":"16380:410:159","nodes":[],"body":{"id":76680,"nodeType":"Block","src":"16630:160:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":76671,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"16687:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76672,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"16696:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76673,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76657,"src":"16710:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76674,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76659,"src":"16721:14:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":76675,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76661,"src":"16737:15:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76676,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76663,"src":"16754:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76669,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16670:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16674:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16670:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16670:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76668,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16647:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16647:136:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76667,"id":76679,"nodeType":"Return","src":"16640:143:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_stateTransitionHash","nameLocation":"16389:20:159","parameters":{"id":76664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76653,"mutability":"mutable","name":"actorId","nameLocation":"16427:7:159","nodeType":"VariableDeclaration","scope":76681,"src":"16419:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76652,"name":"address","nodeType":"ElementaryTypeName","src":"16419:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76655,"mutability":"mutable","name":"newStateHash","nameLocation":"16452:12:159","nodeType":"VariableDeclaration","scope":76681,"src":"16444:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16444:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76657,"mutability":"mutable","name":"inheritor","nameLocation":"16482:9:159","nodeType":"VariableDeclaration","scope":76681,"src":"16474:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76656,"name":"address","nodeType":"ElementaryTypeName","src":"16474:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76659,"mutability":"mutable","name":"valueToReceive","nameLocation":"16509:14:159","nodeType":"VariableDeclaration","scope":76681,"src":"16501:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76658,"name":"uint128","nodeType":"ElementaryTypeName","src":"16501:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76661,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"16541:15:159","nodeType":"VariableDeclaration","scope":76681,"src":"16533:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16533:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76663,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"16574:18:159","nodeType":"VariableDeclaration","scope":76681,"src":"16566:26:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16566:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16409:189:159"},"returnParameters":{"id":76667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76681,"src":"16621:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16621:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16620:9:159"},"scope":76872,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76710,"nodeType":"FunctionDefinition","src":"16796:451:159","nodes":[],"body":{"id":76709,"nodeType":"Block","src":"16899:348:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76692,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76684,"src":"16973:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16989:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73516,"src":"16973:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76694,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76684,"src":"17009:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17025:11:159","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":73518,"src":"17009:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76696,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76684,"src":"17054:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17070:7:159","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73520,"src":"17054:23:159","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":76698,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76684,"src":"17095:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17111:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73522,"src":"17095:21:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":76700,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76684,"src":"17134:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17150:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"17134:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17163:2:159","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":73528,"src":"17134:31:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":76703,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76684,"src":"17183:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":76704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17199:12:159","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":73525,"src":"17183:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$73531_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":76705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17212:4:159","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":73530,"src":"17183:33:159","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"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_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16939:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16943:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"16939:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16939:291:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76689,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16916:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16916:324:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76688,"id":76708,"nodeType":"Return","src":"16909:331:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_outgoingMessageHash","nameLocation":"16805:20:159","parameters":{"id":76685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76684,"mutability":"mutable","name":"outgoingMessage","nameLocation":"16851:15:159","nodeType":"VariableDeclaration","scope":76710,"src":"16826:40:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":76683,"nodeType":"UserDefinedTypeName","pathNode":{"id":76682,"name":"OutgoingMessage","nameLocations":["16826:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":73526,"src":"16826:15:159"},"referencedDeclaration":73526,"src":"16826:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$73526_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"src":"16825:42:159"},"returnParameters":{"id":76688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76710,"src":"16890:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16890:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16889:9:159"},"scope":76872,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76729,"nodeType":"FunctionDefinition","src":"17253:192:159","nodes":[],"body":{"id":76728,"nodeType":"Block","src":"17353:92:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76721,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76713,"src":"17397:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17412:2:159","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":73476,"src":"17397:17:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76723,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76713,"src":"17416:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":76724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:5:159","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":73478,"src":"17416:20:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":76719,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17380:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17384:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"17380:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17380:57:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76718,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17370:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17370:68:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76717,"id":76727,"nodeType":"Return","src":"17363:75:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_codeCommitmentHash","nameLocation":"17262:19:159","parameters":{"id":76714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76713,"mutability":"mutable","name":"codeCommitment","nameLocation":"17306:14:159","nodeType":"VariableDeclaration","scope":76729,"src":"17282:38:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":76712,"nodeType":"UserDefinedTypeName","pathNode":{"id":76711,"name":"CodeCommitment","nameLocations":["17282:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":73479,"src":"17282:14:159"},"referencedDeclaration":73479,"src":"17282:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$73479_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"src":"17281:40:159"},"returnParameters":{"id":76717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76716,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76729,"src":"17344:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17344:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17343:9:159"},"scope":76872,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76762,"nodeType":"FunctionDefinition","src":"17451:257:159","nodes":[],"body":{"id":76761,"nodeType":"Block","src":"17499:209:159","nodes":[],"statements":[{"assignments":[76736],"declarations":[{"constant":false,"id":76736,"mutability":"mutable","name":"router","nameLocation":"17525:6:159","nodeType":"VariableDeclaration","scope":76761,"src":"17509:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76735,"nodeType":"UserDefinedTypeName","pathNode":{"id":76734,"name":"Storage","nameLocations":["17509:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17509:7:159"},"referencedDeclaration":73470,"src":"17509:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76739,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76737,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"17534:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17534:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17509:38:159"},{"assignments":[76741],"declarations":[{"constant":false,"id":76741,"mutability":"mutable","name":"success","nameLocation":"17563:7:159","nodeType":"VariableDeclaration","scope":76761,"src":"17558:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76740,"name":"bool","nodeType":"ElementaryTypeName","src":"17558:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76755,"initialValue":{"arguments":[{"expression":{"id":76747,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17613:2:159","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":76748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17616:6:159","memberName":"origin","nodeType":"MemberAccess","src":"17613:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76751,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17632:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$76872","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$76872","typeString":"contract Router"}],"id":76750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17624:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76749,"name":"address","nodeType":"ElementaryTypeName","src":"17624:7:159","typeDescriptions":{}}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17624:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76753,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76731,"src":"17639:6:159","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":[{"expression":{"id":76743,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76736,"src":"17580:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17587:11:159","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73441,"src":"17580:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76742,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43140,"src":"17573:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$43140_$","typeString":"type(contract IERC20)"}},"id":76745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17573:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$43140","typeString":"contract IERC20"}},"id":76746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17600:12:159","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43139,"src":"17573:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17573:73:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17558:88:159"},{"expression":{"arguments":[{"id":76757,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76741,"src":"17665:7:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":76758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17674:26:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":76756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17657:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76760,"nodeType":"ExpressionStatement","src":"17657:44:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValue","nameLocation":"17460:14:159","parameters":{"id":76732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76731,"mutability":"mutable","name":"_value","nameLocation":"17483:6:159","nodeType":"VariableDeclaration","scope":76762,"src":"17475:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76730,"name":"uint128","nodeType":"ElementaryTypeName","src":"17475:7:159","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17474:16:159"},"returnParameters":{"id":76733,"nodeType":"ParameterList","parameters":[],"src":"17499:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76803,"nodeType":"FunctionDefinition","src":"17714:317:159","nodes":[],"body":{"id":76802,"nodeType":"Block","src":"17750:281:159","nodes":[],"statements":[{"assignments":[76767],"declarations":[{"constant":false,"id":76767,"mutability":"mutable","name":"router","nameLocation":"17776:6:159","nodeType":"VariableDeclaration","scope":76802,"src":"17760:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76766,"nodeType":"UserDefinedTypeName","pathNode":{"id":76765,"name":"Storage","nameLocations":["17760:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"17760:7:159"},"referencedDeclaration":73470,"src":"17760:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76770,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76768,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"17785:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17785:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17760:38:159"},{"body":{"id":76796,"nodeType":"Block","src":"17868:118:159","statements":[{"assignments":[76784],"declarations":[{"constant":false,"id":76784,"mutability":"mutable","name":"validator","nameLocation":"17890:9:159","nodeType":"VariableDeclaration","scope":76796,"src":"17882:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76783,"name":"address","nodeType":"ElementaryTypeName","src":"17882:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76789,"initialValue":{"baseExpression":{"expression":{"id":76785,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76767,"src":"17902:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17909:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17902:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76788,"indexExpression":{"id":76787,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76772,"src":"17924:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17902:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17882:44:159"},{"expression":{"id":76794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17940:35:159","subExpression":{"baseExpression":{"expression":{"id":76790,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76767,"src":"17947:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17954:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"17947:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76793,"indexExpression":{"id":76792,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76784,"src":"17965:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17947:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76795,"nodeType":"ExpressionStatement","src":"17940:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76772,"src":"17829:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76776,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76767,"src":"17833:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17840:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"17833:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17855:6:159","memberName":"length","nodeType":"MemberAccess","src":"17833:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17829:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76797,"initializationExpression":{"assignments":[76772],"declarations":[{"constant":false,"id":76772,"mutability":"mutable","name":"i","nameLocation":"17822:1:159","nodeType":"VariableDeclaration","scope":76797,"src":"17814:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76771,"name":"uint256","nodeType":"ElementaryTypeName","src":"17814:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76774,"initialValue":{"hexValue":"30","id":76773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17826:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17814:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17863:3:159","subExpression":{"id":76780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76772,"src":"17863:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76782,"nodeType":"ExpressionStatement","src":"17863:3:159"},"nodeType":"ForStatement","src":"17809:177:159"},{"expression":{"id":76800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17996:28:159","subExpression":{"expression":{"id":76798,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76767,"src":"18003:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18010:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18003:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76801,"nodeType":"ExpressionStatement","src":"17996:28:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_cleanValidators","nameLocation":"17723:16:159","parameters":{"id":76763,"nodeType":"ParameterList","parameters":[],"src":"17739:2:159"},"returnParameters":{"id":76764,"nodeType":"ParameterList","parameters":[],"src":"17750:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76858,"nodeType":"FunctionDefinition","src":"18037:442:159","nodes":[],"body":{"id":76857,"nodeType":"Block","src":"18104:375:159","nodes":[],"statements":[{"assignments":[76811],"declarations":[{"constant":false,"id":76811,"mutability":"mutable","name":"router","nameLocation":"18130:6:159","nodeType":"VariableDeclaration","scope":76857,"src":"18114:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76810,"nodeType":"UserDefinedTypeName","pathNode":{"id":76809,"name":"Storage","nameLocations":["18114:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"18114:7:159"},"referencedDeclaration":73470,"src":"18114:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":76814,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76812,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76871,"src":"18139:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73470_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":76813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18139:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18114:38:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":76816,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76811,"src":"18171:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18178:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18171:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18193:6:159","memberName":"length","nodeType":"MemberAccess","src":"18171:28:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18203:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18171:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726576696f75732076616c696461746f727320776572656e27742072656d6f766564","id":76821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18206:37:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""},"value":"previous validators weren't removed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""}],"id":76815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18163:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":76822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18163:81:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76823,"nodeType":"ExpressionStatement","src":"18163:81:159"},{"body":{"id":76849,"nodeType":"Block","src":"18309:113:159","statements":[{"assignments":[76836],"declarations":[{"constant":false,"id":76836,"mutability":"mutable","name":"validator","nameLocation":"18331:9:159","nodeType":"VariableDeclaration","scope":76849,"src":"18323:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76835,"name":"address","nodeType":"ElementaryTypeName","src":"18323:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76840,"initialValue":{"baseExpression":{"id":76837,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76806,"src":"18343:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76839,"indexExpression":{"id":76838,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76825,"src":"18360:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18343:19:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18323:39:159"},{"expression":{"id":76847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":76841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76811,"src":"18376:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18383:10:159","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":73453,"src":"18376:17:159","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76845,"indexExpression":{"id":76843,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76836,"src":"18394:9:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18376:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18407:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18376:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76848,"nodeType":"ExpressionStatement","src":"18376:35:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76825,"src":"18275:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76829,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76806,"src":"18279:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18296:6:159","memberName":"length","nodeType":"MemberAccess","src":"18279:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18275:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76850,"initializationExpression":{"assignments":[76825],"declarations":[{"constant":false,"id":76825,"mutability":"mutable","name":"i","nameLocation":"18268:1:159","nodeType":"VariableDeclaration","scope":76850,"src":"18260:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76824,"name":"uint256","nodeType":"ElementaryTypeName","src":"18260:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76827,"initialValue":{"hexValue":"30","id":76826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18272:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18260:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18304:3:159","subExpression":{"id":76832,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76825,"src":"18304:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76834,"nodeType":"ExpressionStatement","src":"18304:3:159"},"nodeType":"ForStatement","src":"18255:167:159"},{"expression":{"id":76855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76851,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76811,"src":"18432:6:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":76853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18439:14:159","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":73456,"src":"18432:21:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76854,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76806,"src":"18456:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18432:40:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76856,"nodeType":"ExpressionStatement","src":"18432:40:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setValidators","nameLocation":"18046:14:159","parameters":{"id":76807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76806,"mutability":"mutable","name":"_validatorsArray","nameLocation":"18078:16:159","nodeType":"VariableDeclaration","scope":76858,"src":"18061:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76804,"name":"address","nodeType":"ElementaryTypeName","src":"18061:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76805,"nodeType":"ArrayTypeName","src":"18061:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18060:35:159"},"returnParameters":{"id":76808,"nodeType":"ParameterList","parameters":[],"src":"18104:0:159"},"scope":76872,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76871,"nodeType":"FunctionDefinition","src":"18485:222:159","nodes":[],"body":{"id":76870,"nodeType":"Block","src":"18554:153:159","nodes":[],"statements":[{"assignments":[76865],"declarations":[{"constant":false,"id":76865,"mutability":"mutable","name":"slot","nameLocation":"18572:4:159","nodeType":"VariableDeclaration","scope":76870,"src":"18564:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18564:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76868,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76866,"name":"getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"18579:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18579:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18564:31:159"},{"AST":{"nativeSrc":"18658:43:159","nodeType":"YulBlock","src":"18658:43:159","statements":[{"nativeSrc":"18672:19:159","nodeType":"YulAssignment","src":"18672:19:159","value":{"name":"slot","nativeSrc":"18687:4:159","nodeType":"YulIdentifier","src":"18687:4:159"},"variableNames":[{"name":"router.slot","nativeSrc":"18672:11:159","nodeType":"YulIdentifier","src":"18672:11:159"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":76862,"isOffset":false,"isSlot":true,"src":"18672:11:159","suffix":"slot","valueSize":1},{"declaration":76865,"isOffset":false,"isSlot":false,"src":"18687:4:159","valueSize":1}],"id":76869,"nodeType":"InlineAssembly","src":"18649:52:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"18494:11:159","parameters":{"id":76859,"nodeType":"ParameterList","parameters":[],"src":"18505:2:159"},"returnParameters":{"id":76863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76862,"mutability":"mutable","name":"router","nameLocation":"18546:6:159","nodeType":"VariableDeclaration","scope":76871,"src":"18530:22:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":76861,"nodeType":"UserDefinedTypeName","pathNode":{"id":76860,"name":"Storage","nameLocations":["18530:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73470,"src":"18530:7:159"},"referencedDeclaration":73470,"src":"18530:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73470_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"18529:24:159"},"scope":76872,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":75159,"name":"IRouter","nameLocations":["898:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":73754,"src":"898:7:159"},"id":75160,"nodeType":"InheritanceSpecifier","src":"898:7:159"},{"baseName":{"id":75161,"name":"OwnableUpgradeable","nameLocations":["907:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"907:18:159"},"id":75162,"nodeType":"InheritanceSpecifier","src":"907:18:159"},{"baseName":{"id":75163,"name":"ReentrancyGuardTransient","nameLocations":["927:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":44045,"src":"927:24:159"},"id":75164,"nodeType":"InheritanceSpecifier","src":"927:24:159"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76872,44045,39387,40535,39641,73754],"name":"Router","nameLocation":"888:6:159","scope":76873,"usedErrors":[39223,39228,39404,39407,43912,43918,43989,44912,44917,44922],"usedEvents":[39234,39412,73536,73543,73550,73557,73560,73563,73568,73573]}],"license":"UNLICENSED"},"id":159} \ No newline at end of file diff --git a/ethexe/ethereum/WrappedVara.json b/ethexe/ethereum/WrappedVara.json index c9f99fd3154..65268c6c7c4 100644 --- a/ethexe/ethereum/WrappedVara.json +++ b/ethexe/ethereum/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":"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":"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":"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":"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":"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":"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":"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":"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"}]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051611cc090816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120f578063095ea7b3146111e957806318160ddd146111c057806323b872dd14611188578063313ce5671461116d5780633644e5151461114b57806340c10f191461110e57806342966c68146110f15780636c2eb3501461105757806370a0823114611013578063715018a614610fac57806379cc679014610f7c5780637ecebe0014610f2657806384b0196e14610c525780638da5cb5b14610c1e57806395d89b4114610b24578063a9059cbb14610af3578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112f0565b6101246115b4565b6113ae565b005b5f80fd5b3461012b57604036600319011261012b576101486112f0565b610159610153611306565b91611376565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112f0565b610197611306565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611354565b5190206102636117c2565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611854565b909291926118e1565b6001600160a01b03168481036102ae5750610129935061169d565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112f0565b5f80516020611c6b833981519152549060ff8260401c16159167ffffffffffffffff811680159081610aeb575b6001149081610ae1575b159081610ad8575b50610ac95767ffffffffffffffff1981166001175f80516020611c6b8339815191525582610a9d575b5060405191610369604084611354565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611354565b6005835264575641524160d81b60208401526103ab611829565b6103b3611829565b835167ffffffffffffffff81116107aa576103db5f80516020611b8b8339815191525461131c565b601f8111610a2e575b50602094601f82116001146109b3579481929394955f926109a8575b50508160011b915f199060031b1c1916175f80516020611b8b833981519152555b825167ffffffffffffffff81116107aa576104495f80516020611beb8339815191525461131c565b601f8111610939575b506020601f82116001146108be57819293945f926108b3575b50508160011b915f199060031b1c1916175f80516020611beb833981519152555b610494611829565b61049c611829565b6104a4611829565b6104ad816113ae565b604051916104bc604084611354565b600c83526b57726170706564205661726160a01b60208401526104dd611829565b604051916104ec604084611354565b60018352603160f81b6020840152610502611829565b835167ffffffffffffffff81116107aa5761052a5f80516020611bcb8339815191525461131c565b601f8111610844575b50602094601f82116001146107c9579481929394955f926107be575b50508160011b915f199060031b1c1916175f80516020611bcb833981519152555b825167ffffffffffffffff81116107aa576105985f80516020611c4b8339815191525461131c565b601f811161073b575b506020601f82116001146106c057819293945f926106b5575b50508160011b915f199060031b1c1916175f80516020611c4b833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a25769d3c21bcecceda100000061064591611700565b61064b57005b68ff0000000000000000195f80516020611c6b83398151915254165f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c4b8339815191525f52805f20915f5b8181106107235750958360019596971061070b575b505050811b015f80516020611c4b833981519152556105db565b01515f1960f88460031b161c191690558480806106f1565b9192602060018192868b0151815501940192016106dc565b5f80516020611c4b8339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c810191602084106107a0575b601f0160051c01905b81811061079557506105a1565b5f8155600101610788565b909150819061077f565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bcb8339815191525f52805f20915f5b88811061082c57508360019596979810610814575b505050811b015f80516020611bcb83398151915255610570565b01515f1960f88460031b161c191690558580806107fa565b919260206001819286850151815501940192016107e5565b5f80516020611bcb8339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a9575b601f0160051c01905b81811061089e5750610533565b5f8155600101610891565b9091508190610888565b01519050848061046b565b601f198216905f80516020611beb8339815191525f52805f20915f5b81811061092157509583600195969710610909575b505050811b015f80516020611beb8339815191525561048c565b01515f1960f88460031b161c191690558480806108ef565b9192602060018192868b0151815501940192016108da565b5f80516020611beb8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099e575b601f0160051c01905b8181106109935750610452565b5f8155600101610986565b909150819061097d565b015190508580610400565b601f198216955f80516020611b8b8339815191525f52805f20915f5b888110610a16575083600195969798106109fe575b505050811b015f80516020611b8b83398151915255610421565b01515f1960f88460031b161c191690558580806109e4565b919260206001819286850151815501940192016109cf565b5f80516020611b8b8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a93575b601f0160051c01905b818110610a8857506103e4565b5f8155600101610a7b565b9091508190610a72565b68ffffffffffffffffff191668010000000000000001175f80516020611c6b8339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b19610b0f6112f0565b60243590336114e3565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611beb83398151915254610b508161131c565b8084529060018116908115610bfa5750600114610b90575b610b8c83610b7881850382611354565b6040519182916020835260208301906112cc565b0390f35b5f80516020611beb8339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610be057509091508101602001610b78610b68565b919260018160209254838588010152019101909291610bc8565b60ff191660208086019190915291151560051b84019091019150610b789050610b68565b3461012b575f36600319011261012b575f80516020611c0b833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efd575b15610ec0576040515f80516020611bcb83398151915254815f610cad8361131c565b8083529260018116908115610ea15750600114610e36575b610cd192500382611354565b6040515f80516020611c4b83398151915254815f610cee8361131c565b8083529260018116908115610e175750600114610dac575b610d1991925092610d5094930382611354565b6020610d5e60405192610d2c8385611354565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112cc565b9085820360408701526112cc565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9557505050500390f35b835185528695509381019392810192600101610d86565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610dfb575050906020610d1992820101610d06565b6020919350806001915483858801015201910190918392610de3565b60209250610d1994915060ff191682840152151560051b820101610d06565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e85575050906020610cd192820101610cc5565b6020919350806001915483858801015201910190918392610e6d565b60209250610cd194915060ff191682840152151560051b820101610cc5565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c8b565b3461012b57602036600319011261012b57610f3f6112f0565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f986112f0565b60243590610fa782338361141f565b6115e7565b3461012b575f36600319011261012b57610fc46115b4565b5f80516020611c0b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110346112f0565b165f525f80516020611bab833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106f6115b4565b5f80516020611c6b8339815191525460ff8160401c1680156110dc575b610ac95760029068ffffffffffffffffff1916175f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108c565b3461012b57602036600319011261012b57610129600435336115e7565b3461012b57604036600319011261012b576111276112f0565b61112f6115b4565b6001600160a01b038116156106a2576101299060243590611700565b3461012b575f36600319011261012b5760206111656117c2565b604051908152f35b3461012b575f36600319011261012b57602060405160128152f35b3461012b57606036600319011261012b57610b196111a46112f0565b6111ac611306565b604435916111bb83338361141f565b6114e3565b3461012b575f36600319011261012b5760205f80516020611c2b83398151915254604051908152f35b3461012b57604036600319011261012b57610b196112056112f0565b602435903361169d565b3461012b575f36600319011261012b576040515f5f80516020611b8b8339815191525461123b8161131c565b8084529060018116908115610bfa575060011461126257610b8c83610b7881850382611354565b5f80516020611b8b8339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b257509091508101602001610b78610b68565b91926001816020925483858801015201910190929161129a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c9216801561134a575b602083101461133657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161132b565b90601f8019910116810190811067ffffffffffffffff8211176107aa57604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140c575f80516020611c0b83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142a83611376565b60018060a01b0382165f5260205260405f2054925f19840361144d575b50505050565b8284106114c0576001600160a01b038116156114ad576001600160a01b0382161561149a5761147b90611376565b9060018060a01b03165f5260205260405f20910390555f808080611447565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b03169081156115a1576001600160a01b03169182156106a257815f525f80516020611bab83398151915260205260405f205481811061158857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611bab83398151915284520360405f2055845f525f80516020611bab833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c0b833981519152546001600160a01b031633036115d457565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b031680156115a157805f525f80516020611bab83398151915260205260405f2054838110611683576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611bab8339815191528452036040862055805f80516020611c2b83398151915254035f80516020611c2b83398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ad576001600160a01b031692831561149a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ec602092611376565b855f5282528060405f2055604051908152a3565b5f80516020611c2b83398151915254908282018092116117ae575f80516020611c2b833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178c57805f80516020611c2b83398151915254035f80516020611c2b833981519152555b604051908152a3565b8484525f80516020611bab833981519152825260408420818154019055611783565b634e487b7160e01b5f52601160045260245ffd5b6117ca611955565b6117d2611a82565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182360c082611354565b51902090565b60ff5f80516020611c6b8339815191525460401c161561184557565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118cb575f516001600160a01b038116156118c157905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561194157806118f3575050565b6001810361190a5763f645eedf60e01b5f5260045ffd5b60028103611925575063fce698f760e01b5f5260045260245ffd5b60031461192f5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bcb83398151915254905f816119738461131c565b9182825260208201946001811690815f14611a6657506001146119fb575b61199d92500382611354565b519081156119a9572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d65790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4a57505090602061199d92820101611991565b6020919350806001915483858801015201910190918392611a32565b60ff191686525061199d92151560051b82016020019050611991565b6040515f80516020611c4b83398151915254905f81611aa08461131c565b9182825260208201946001811690815f14611b6e5750600114611b03575b611aca92500382611354565b51908115611ad6572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d65790565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b52575050906020611aca92820101611abe565b6020919350806001915483858801015201910190918392611b3a565b60ff1916865250611aca92151560051b82016020019050611abe56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122038a08c4d60635e565751d8c4c6470348d6a9d9198f9a9897ab8db97d051339fd64736f6c634300081a0033","sourceMap":"632:901:160:-:0;;;;;;;8837:64:26;632:901:160;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;632:901:160;;7985:34:26;7981:146;;-1:-1:-1;632:901:160;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;632:901:160;-1:-1:-1;;;;;632:901:160;;;8837:64:26;632:901:160;;;8087:29:26;;632:901:160;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;632:901:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120f578063095ea7b3146111e957806318160ddd146111c057806323b872dd14611188578063313ce5671461116d5780633644e5151461114b57806340c10f191461110e57806342966c68146110f15780636c2eb3501461105757806370a0823114611013578063715018a614610fac57806379cc679014610f7c5780637ecebe0014610f2657806384b0196e14610c525780638da5cb5b14610c1e57806395d89b4114610b24578063a9059cbb14610af3578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112f0565b6101246115b4565b6113ae565b005b5f80fd5b3461012b57604036600319011261012b576101486112f0565b610159610153611306565b91611376565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112f0565b610197611306565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611354565b5190206102636117c2565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611854565b909291926118e1565b6001600160a01b03168481036102ae5750610129935061169d565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112f0565b5f80516020611c6b833981519152549060ff8260401c16159167ffffffffffffffff811680159081610aeb575b6001149081610ae1575b159081610ad8575b50610ac95767ffffffffffffffff1981166001175f80516020611c6b8339815191525582610a9d575b5060405191610369604084611354565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611354565b6005835264575641524160d81b60208401526103ab611829565b6103b3611829565b835167ffffffffffffffff81116107aa576103db5f80516020611b8b8339815191525461131c565b601f8111610a2e575b50602094601f82116001146109b3579481929394955f926109a8575b50508160011b915f199060031b1c1916175f80516020611b8b833981519152555b825167ffffffffffffffff81116107aa576104495f80516020611beb8339815191525461131c565b601f8111610939575b506020601f82116001146108be57819293945f926108b3575b50508160011b915f199060031b1c1916175f80516020611beb833981519152555b610494611829565b61049c611829565b6104a4611829565b6104ad816113ae565b604051916104bc604084611354565b600c83526b57726170706564205661726160a01b60208401526104dd611829565b604051916104ec604084611354565b60018352603160f81b6020840152610502611829565b835167ffffffffffffffff81116107aa5761052a5f80516020611bcb8339815191525461131c565b601f8111610844575b50602094601f82116001146107c9579481929394955f926107be575b50508160011b915f199060031b1c1916175f80516020611bcb833981519152555b825167ffffffffffffffff81116107aa576105985f80516020611c4b8339815191525461131c565b601f811161073b575b506020601f82116001146106c057819293945f926106b5575b50508160011b915f199060031b1c1916175f80516020611c4b833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a25769d3c21bcecceda100000061064591611700565b61064b57005b68ff0000000000000000195f80516020611c6b83398151915254165f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c4b8339815191525f52805f20915f5b8181106107235750958360019596971061070b575b505050811b015f80516020611c4b833981519152556105db565b01515f1960f88460031b161c191690558480806106f1565b9192602060018192868b0151815501940192016106dc565b5f80516020611c4b8339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c810191602084106107a0575b601f0160051c01905b81811061079557506105a1565b5f8155600101610788565b909150819061077f565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bcb8339815191525f52805f20915f5b88811061082c57508360019596979810610814575b505050811b015f80516020611bcb83398151915255610570565b01515f1960f88460031b161c191690558580806107fa565b919260206001819286850151815501940192016107e5565b5f80516020611bcb8339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a9575b601f0160051c01905b81811061089e5750610533565b5f8155600101610891565b9091508190610888565b01519050848061046b565b601f198216905f80516020611beb8339815191525f52805f20915f5b81811061092157509583600195969710610909575b505050811b015f80516020611beb8339815191525561048c565b01515f1960f88460031b161c191690558480806108ef565b9192602060018192868b0151815501940192016108da565b5f80516020611beb8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099e575b601f0160051c01905b8181106109935750610452565b5f8155600101610986565b909150819061097d565b015190508580610400565b601f198216955f80516020611b8b8339815191525f52805f20915f5b888110610a16575083600195969798106109fe575b505050811b015f80516020611b8b83398151915255610421565b01515f1960f88460031b161c191690558580806109e4565b919260206001819286850151815501940192016109cf565b5f80516020611b8b8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a93575b601f0160051c01905b818110610a8857506103e4565b5f8155600101610a7b565b9091508190610a72565b68ffffffffffffffffff191668010000000000000001175f80516020611c6b8339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b19610b0f6112f0565b60243590336114e3565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611beb83398151915254610b508161131c565b8084529060018116908115610bfa5750600114610b90575b610b8c83610b7881850382611354565b6040519182916020835260208301906112cc565b0390f35b5f80516020611beb8339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610be057509091508101602001610b78610b68565b919260018160209254838588010152019101909291610bc8565b60ff191660208086019190915291151560051b84019091019150610b789050610b68565b3461012b575f36600319011261012b575f80516020611c0b833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efd575b15610ec0576040515f80516020611bcb83398151915254815f610cad8361131c565b8083529260018116908115610ea15750600114610e36575b610cd192500382611354565b6040515f80516020611c4b83398151915254815f610cee8361131c565b8083529260018116908115610e175750600114610dac575b610d1991925092610d5094930382611354565b6020610d5e60405192610d2c8385611354565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112cc565b9085820360408701526112cc565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9557505050500390f35b835185528695509381019392810192600101610d86565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610dfb575050906020610d1992820101610d06565b6020919350806001915483858801015201910190918392610de3565b60209250610d1994915060ff191682840152151560051b820101610d06565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e85575050906020610cd192820101610cc5565b6020919350806001915483858801015201910190918392610e6d565b60209250610cd194915060ff191682840152151560051b820101610cc5565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c8b565b3461012b57602036600319011261012b57610f3f6112f0565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f986112f0565b60243590610fa782338361141f565b6115e7565b3461012b575f36600319011261012b57610fc46115b4565b5f80516020611c0b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110346112f0565b165f525f80516020611bab833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106f6115b4565b5f80516020611c6b8339815191525460ff8160401c1680156110dc575b610ac95760029068ffffffffffffffffff1916175f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108c565b3461012b57602036600319011261012b57610129600435336115e7565b3461012b57604036600319011261012b576111276112f0565b61112f6115b4565b6001600160a01b038116156106a2576101299060243590611700565b3461012b575f36600319011261012b5760206111656117c2565b604051908152f35b3461012b575f36600319011261012b57602060405160128152f35b3461012b57606036600319011261012b57610b196111a46112f0565b6111ac611306565b604435916111bb83338361141f565b6114e3565b3461012b575f36600319011261012b5760205f80516020611c2b83398151915254604051908152f35b3461012b57604036600319011261012b57610b196112056112f0565b602435903361169d565b3461012b575f36600319011261012b576040515f5f80516020611b8b8339815191525461123b8161131c565b8084529060018116908115610bfa575060011461126257610b8c83610b7881850382611354565b5f80516020611b8b8339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b257509091508101602001610b78610b68565b91926001816020925483858801015201910190929161129a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c9216801561134a575b602083101461133657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161132b565b90601f8019910116810190811067ffffffffffffffff8211176107aa57604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140c575f80516020611c0b83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142a83611376565b60018060a01b0382165f5260205260405f2054925f19840361144d575b50505050565b8284106114c0576001600160a01b038116156114ad576001600160a01b0382161561149a5761147b90611376565b9060018060a01b03165f5260205260405f20910390555f808080611447565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b03169081156115a1576001600160a01b03169182156106a257815f525f80516020611bab83398151915260205260405f205481811061158857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611bab83398151915284520360405f2055845f525f80516020611bab833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c0b833981519152546001600160a01b031633036115d457565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b031680156115a157805f525f80516020611bab83398151915260205260405f2054838110611683576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611bab8339815191528452036040862055805f80516020611c2b83398151915254035f80516020611c2b83398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ad576001600160a01b031692831561149a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ec602092611376565b855f5282528060405f2055604051908152a3565b5f80516020611c2b83398151915254908282018092116117ae575f80516020611c2b833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178c57805f80516020611c2b83398151915254035f80516020611c2b833981519152555b604051908152a3565b8484525f80516020611bab833981519152825260408420818154019055611783565b634e487b7160e01b5f52601160045260245ffd5b6117ca611955565b6117d2611a82565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182360c082611354565b51902090565b60ff5f80516020611c6b8339815191525460401c161561184557565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118cb575f516001600160a01b038116156118c157905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561194157806118f3575050565b6001810361190a5763f645eedf60e01b5f5260045ffd5b60028103611925575063fce698f760e01b5f5260045260245ffd5b60031461192f5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bcb83398151915254905f816119738461131c565b9182825260208201946001811690815f14611a6657506001146119fb575b61199d92500382611354565b519081156119a9572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d65790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4a57505090602061199d92820101611991565b6020919350806001915483858801015201910190918392611a32565b60ff191686525061199d92151560051b82016020019050611991565b6040515f80516020611c4b83398151915254905f81611aa08461131c565b9182825260208201946001811690815f14611b6e5750600114611b03575b611aca92500382611354565b51908115611ad6572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d65790565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b52575050906020611aca92820101611abe565b6020919350806001915483858801015201910190918392611b3a565b60ff1916865250611aca92151560051b82016020019050611abe56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122038a08c4d60635e565751d8c4c6470348d6a9d9198f9a9897ab8db97d051339fd64736f6c634300081a0033","sourceMap":"632:901:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;2357:1:25;632:901:160;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;:::-;632:901:160;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;;;:::i;:::-;4867:20:27;632:901:160;;:::i;:::-;4867:20:27;;:::i;:::-;:29;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;;-1:-1:-1;632:901:160;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:29;;:26;2297:97;;6967:25:66;7021:8;632:901:160;;;;;;;;;;;;972:64:31;632:901:160;;;;;;;;;;;;;;;;2435:78:29;632:901:160;2435:78:29;;632:901:160;1279:95:29;632:901:160;;1279:95:29;632:901:160;1279:95:29;;632:901:160;;;;;;;;;1279:95:29;;632:901:160;1279:95:29;632:901:160;1279:95:29;;632:901:160;;1279:95:29;;632:901:160;;1279:95:29;;632:901:160;;2435:78:29;;;632:901:160;2435:78:29;;:::i;:::-;632:901:160;2425:89:29;;4094:23:33;;:::i;:::-;3515:233:68;632:901:160;3515:233:68;;-1:-1:-1;;;3515:233:68;;;;;;;;;;632:901:160;;;3515:233:68;632:901:160;;3515:233:68;;6967:25:66;:::i;:::-;7021:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:901:160;2638:15:29;;;2634:88;;10117:4:27;;;;;:::i;2634:88:29:-;2676:35;;;;;632:901:160;2676:35:29;632:901:160;;;;;;2676:35:29;2297:97;2350:33;;;;632:901:160;2350:33:29;632:901:160;;;;2350:33:29;632:901:160;;;;;;-1:-1:-1;;632:901:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;4301:16:26;632:901:160;;;;4726:16:26;;:34;;;;632:901:160;4805:1:26;4790:16;:50;;;;632:901:160;4855:13:26;:30;;;;632:901:160;4851:91:26;;;-1:-1:-1;;632:901:160;;4805:1:26;632:901:160;-1:-1:-1;;;;;;;;;;;632:901:160;;4979:67:26;;632:901:160;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:901:160;;;;;;;;;;;:::i;:::-;821:14;632:901;;-1:-1:-1;;;632:901:160;821:14;;;6893:76:26;;:::i;:::-;;;:::i;:::-;632:901:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;2600:7:27;632:901:160;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;2600:7:27;632:901:160;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;6893:76:26;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:901:160;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:901:160;;;;6893:76:26;;:::i;:::-;632:901:160;;;;;;;:::i;:::-;4805:1:26;632:901:160;;-1:-1:-1;;;632:901:160;;;;6893:76:26;;:::i;:::-;632:901:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;2600:7:27;632:901:160;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;2600:7:27;632:901:160;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;2806:64:33;632:901:160;;;3902:16:33;632:901:160;-1:-1:-1;;;;;632:901:160;;8803:21:27;8799:91;;941:9:160;8928:5:27;;;:::i;:::-;5066:101:26;;632:901:160;5066:101:26;632:901:160;;-1:-1:-1;;;;;;;;;;;632:901:160;;-1:-1:-1;;;;;;;;;;;632:901:160;5142:14:26;632:901:160;;;4805:1:26;632:901:160;;5142:14:26;632:901:160;8799:91:27;8847:32;;;632:901:160;8847:32:27;632:901:160;;;;;8847:32:27;632:901:160;;;;-1:-1:-1;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;2600:7:27;632:901:160;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;2600:7:27;632:901:160;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;;;;;-1:-1:-1;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;2600:7:27;632:901:160;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;;;;;-1:-1:-1;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;2600:7:27;632:901:160;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:26;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;4979:67:26;-1:-1:-1;;632:901:160;;;-1:-1:-1;;;;;;;;;;;632:901:160;4979:67:26;;;4851:91;6498:23;;;632:901:160;4908:23:26;632:901:160;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;632:901:160;;;;;;-1:-1:-1;;632:901:160;;;;4616:5:27;632:901:160;;:::i;:::-;;;966:10:30;;4616:5:27;:::i;:::-;632:901:160;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;-1:-1:-1;632:901:160;;;;;;;-1:-1:-1;632:901:160;;-1:-1:-1;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:160;;-1:-1:-1;632:901:160;;;;;;;;-1:-1:-1;;632:901:160;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;-1:-1:-1;;;;;632:901:160;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;2806:64:33;632:901:160;5777:18:33;:43;;;632:901:160;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:33;632:901:160;;;;6000:4:33;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:901:160;;;;;;;;;;;;-1:-1:-1;;;632:901:160;;;;;;;5777:43:33;632:901:160;5799:16:33;632:901:160;5799:21:33;5777:43;;632:901:160;;;;;;-1:-1:-1;;632:901:160;;;;;;:::i;:::-;;;;;;;;;972:64:31;632:901:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;1479:5:28;632:901:160;;:::i;:::-;;;966:10:30;1448:5:28;966:10:30;;1448:5:28;;:::i;:::-;1479;:::i;632:901:160:-;;;;;;-1:-1:-1;;632:901:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:160;;-1:-1:-1;;;;;;632:901:160;;;;;;;-1:-1:-1;;;;;632:901:160;3975:40:25;632:901:160;;3975:40:25;632:901:160;;;;;;;-1:-1:-1;;632:901:160;;;;-1:-1:-1;;;;;632:901:160;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;6431:44:26;;;;632:901:160;6427:105:26;;1427:1:160;632:901;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;6656:20:26;632:901:160;;;1427:1;632:901;;6656:20:26;632:901:160;6431:44:26;632:901:160;1427:1;632:901;;;6450:25:26;;6431:44;;632:901:160;;;;;;-1:-1:-1;;632:901:160;;;;1005:5:28;632:901:160;;966:10:30;1005:5:28;:::i;632:901:160:-;;;;;;-1:-1:-1;;632:901:160;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;632:901:160;;8803:21:27;8799:91;;8928:5;632:901:160;;;8928:5:27;;:::i;632:901:160:-;;;;;;-1:-1:-1;;632:901:160;;;;;4094:23:33;;:::i;:::-;632:901:160;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;;;;3827:2:27;632:901:160;;;;;;;;;-1:-1:-1;;632:901:160;;;;6198:5:27;632:901:160;;:::i;:::-;;;:::i;:::-;;;966:10:30;6162:5:27;966:10:30;;6162:5:27;;:::i;:::-;6198;:::i;632:901:160:-;;;;;;-1:-1:-1;;632:901:160;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;;10117:4:27;632:901:160;;:::i;:::-;;;966:10:30;;10117:4:27;:::i;632:901:160:-;;;;;;-1:-1:-1;;632:901:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;-1:-1:-1;632:901:160;;;;;;;-1:-1:-1;632:901:160;;-1:-1:-1;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:160;;;;;;;;-1:-1:-1;;632:901:160;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:901:160;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:901:160;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:901:160;;;;;4867:13:27;632:901:160;;;;;;:::o;3405:215:25:-;-1:-1:-1;;;;;632:901:160;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;632:901:160;;-1:-1:-1;;;;;;632:901:160;;;;;;;-1:-1:-1;;;;;632:901:160;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;632:901:160;;3509:1:25;3534:31;11745:477:27;;;4867:20;;;:::i;:::-;632:901:160;;;;;;;-1:-1:-1;632:901:160;;;;-1:-1:-1;632:901:160;;;;;11910:37:27;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:901:160;;11141:19:27;11137:89;;-1:-1:-1;;;;;632:901:160;;11239:21:27;11235:90;;11334:20;;;:::i;:::-;:29;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;-1:-1:-1;632:901:160;;;;;11906:310:27;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:27;-1:-1:-1;11283:31:27;632:901:160;;-1:-1:-1;11283:31:27;11137:89;11183:32;;;-1:-1:-1;11183:32:27;-1:-1:-1;11183:32:27;632:901:160;;-1:-1:-1;11183:32:27;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:27;632:901:160;;;;;;12018:60:27;632:901:160;;;;;;-1:-1:-1;12018:60:27;6605:300;-1:-1:-1;;;;;632:901:160;;6688:18:27;;6684:86;;-1:-1:-1;;;;;632:901:160;;6783:16:27;;6779:86;;632:901:160;6704:1:27;632:901:160;-1:-1:-1;;;;;;;;;;;632:901:160;;;6704:1:27;632:901:160;;7609:19:27;;;7605:115;;632:901:160;8358:25:27;632:901:160;;;;6704:1:27;632:901:160;-1:-1:-1;;;;;;;;;;;632:901:160;;;;6704:1:27;632:901:160;;;6704:1:27;632:901:160;-1:-1:-1;;;;;;;;;;;632:901:160;;;6704:1:27;632:901:160;;;;;;;;;;;;8358:25:27;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:901:160;;;;;;6704:1:27;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:901:160;;6704:1:27;6729:30;2658:162:25;-1:-1:-1;;;;;;;;;;;632:901:160;-1:-1:-1;;;;;632:901:160;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;632:901:160;;-1:-1:-1;2763:40:25;9259:206:27;;;;-1:-1:-1;;;;;632:901:160;9329:21:27;;9325:89;;632:901:160;9348:1:27;632:901:160;-1:-1:-1;;;;;;;;;;;632:901:160;;;9348:1:27;632:901:160;;7609:19:27;;;7605:115;;632:901:160;;9348:1:27;632:901:160;;8358:25:27;632:901:160;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;8358:25:27;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:901:160;;;;;;9348:1:27;7655:50;10976:487;;-1:-1:-1;;;;;632:901:160;;;11141:19:27;;11137:89;;-1:-1:-1;;;;;632:901:160;;11239:21:27;;11235:90;;11415:31;11334:20;;632:901:160;11334:20:27;;:::i;:::-;632:901:160;-1:-1:-1;632:901:160;;;;;-1:-1:-1;632:901:160;;;;;;;11415:31:27;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;-1:-1:-1;;;;;632:901:160;;;;8358:25:27;;632:901:160;;7918:16:27;632:901:160;;;-1:-1:-1;;;;;;;;;;;632:901:160;;-1:-1:-1;;;;;;;;;;;632:901:160;7914:429:27;632:901:160;;;;;8358:25:27;7220:1170::o;7914:429::-;632:901:160;;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;;;;;7914:429:27;;632:901:160;;;;;941:9;;;;;632:901;941:9;4130:191:33;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:901:160;;4221:92:33;;;;632:901:160;2073:95:33;632:901:160;;;2073:95:33;;632:901:160;2073:95:33;;;632:901:160;4284:13:33;2073:95;;;632:901:160;4307:4:33;2073:95;;;632:901:160;2073:95:33;4221:92;;;;;;:::i;:::-;632:901:160;4211:103:33;;4130:191;:::o;7084:141:26:-;632:901:160;-1:-1:-1;;;;;;;;;;;632:901:160;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;5140:1530:66;;;6199:66;6186:79;;6182:164;;632:901:160;;;;;;-1:-1:-1;632:901:160;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;632:901:160;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6457:24::-;632:901:160;;;-1:-1:-1;632:901:160;;;;;6182:164:66;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;7196:532::-;632:901:160;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;632:901:160;7378:38:66;;632:901:160;;7439:23:66;;;7291:20;7439:23;632:901:160;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;632:901:160;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;632:901:160;;;7291:20:66;7679:32;632:901:160;;;;7291:20:66;632:901:160;;;;;7291:20:66;632:901:160;7058:687:33;632:901:160;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:33;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:33;632:901:160;7603:15:33;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:901:160:-;-1:-1:-1;;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;-1:-1:-1;632:901:160;;;;;;;;;;;-1:-1:-1;632:901:160;;7966:723:33;632:901:160;;-1:-1:-1;;;;;;;;;;;632:901:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:33;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:33;632:901:160;8541:18:33;;;;8579:20;:::o;632:901:160:-;-1:-1:-1;;;;;;;;;;;;632:901:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:160;;;-1:-1:-1;632:901:160;;;;;;;;;;;-1:-1:-1;632:901:160;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","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","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"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\":[{\"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\"},{\"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\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"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\":\"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\":\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}],\"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.\"}],\"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.\"}]},\"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.\"}},\"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\":\"See {IERC20-allowance}.\"},\"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\":\"See {IERC20-balanceOf}.\"},\"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. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"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.\"},\"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\":\"See {IERC20-totalSupply}.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"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-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/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/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152\",\"dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL\"]},\"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\":\"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883\",\"dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify\"]},\"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\":\"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e\",\"dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x546b478734d72773f420a95e83f146771966ea29f4448e8ff9c7a739d13bba43\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e61793dfd06dfc3393a06527a7ca1c51aeb0a273bbfcc5d10f966cfd5f98e0b4\",\"dweb:/ipfs/Qmed9Ksq1uscNucYVuccr3NigGgYgJ5vFqEXvEGLrjTmoJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"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":[{"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":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"view","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":"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"}],"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":"See {IERC20-allowance}."},"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":"See {IERC20-balanceOf}."},"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. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"See {IERC-5267}."},"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."},"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":"See {IERC20-totalSupply}."},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/","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/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"cancun","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":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72","urls":["bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152","dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL"],"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":"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506","urls":["bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883","dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify"],"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":"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf","urls":["bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e","dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x546b478734d72773f420a95e83f146771966ea29f4448e8ff9c7a739d13bba43","urls":["bzz-raw://e61793dfd06dfc3393a06527a7ca1c51aeb0a273bbfcc5d10f966cfd5f98e0b4","dweb:/ipfs/Qmed9Ksq1uscNucYVuccr3NigGgYgJ5vFqEXvEGLrjTmoJ"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":76961,"exportedSymbols":{"ERC20BurnableUpgradeable":[40320],"ERC20PermitUpgradeable":[40489],"ERC20Upgradeable":[40258],"Initializable":[39641],"OwnableUpgradeable":[39387],"WrappedVara":[76960]},"nodeType":"SourceUnit","src":"39:1495:160","nodes":[{"id":76864,"nodeType":"PragmaDirective","src":"39:24:160","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":76866,"nodeType":"ImportDirective","src":"65:96:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":76961,"sourceUnit":39642,"symbolAliases":[{"foreign":{"id":76865,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39641,"src":"73:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76868,"nodeType":"ImportDirective","src":"162:102:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":76961,"sourceUnit":40259,"symbolAliases":[{"foreign":{"id":76867,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40258,"src":"170:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76870,"nodeType":"ImportDirective","src":"265:133:160","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":76961,"sourceUnit":40321,"symbolAliases":[{"foreign":{"id":76869,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"273:24:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76872,"nodeType":"ImportDirective","src":"399:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76961,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":76871,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"407:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76874,"nodeType":"ImportDirective","src":"501:129:160","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":76961,"sourceUnit":40490,"symbolAliases":[{"foreign":{"id":76873,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40489,"src":"509:22:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76960,"nodeType":"ContractDefinition","src":"632:901:160","nodes":[{"id":76887,"nodeType":"VariableDeclaration","src":"784:51:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:160","scope":76960,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76885,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":76886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":76890,"nodeType":"VariableDeclaration","src":"841:46:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:160","scope":76960,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76888,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":76889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":76893,"nodeType":"VariableDeclaration","src":"893:57:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:160","scope":76960,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76891,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":76892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:160","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":76901,"nodeType":"FunctionDefinition","src":"1010:53:160","nodes":[],"body":{"id":76900,"nodeType":"Block","src":"1024:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76897,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1034:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76899,"nodeType":"ExpressionStatement","src":"1034:22:160"}]},"documentation":{"id":76894,"nodeType":"StructuredDocumentation","src":"957:48:160","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76895,"nodeType":"ParameterList","parameters":[],"src":"1021:2:160"},"returnParameters":{"id":76896,"nodeType":"ParameterList","parameters":[],"src":"1024:0:160"},"scope":76960,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76935,"nodeType":"FunctionDefinition","src":"1069:297:160","nodes":[],"body":{"id":76934,"nodeType":"Block","src":"1130:236:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76909,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76887,"src":"1153:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":76910,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76890,"src":"1165:12:160","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":76908,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39709,"src":"1140:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":76911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76912,"nodeType":"ExpressionStatement","src":"1140:38:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76913,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40279,"src":"1188:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76915,"nodeType":"ExpressionStatement","src":"1188:22:160"},{"expression":{"arguments":[{"id":76917,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76903,"src":"1235:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76916,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1220:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76919,"nodeType":"ExpressionStatement","src":"1220:28:160"},{"expression":{"arguments":[{"id":76921,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76887,"src":"1277:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":76920,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40376,"src":"1258:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":76922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76923,"nodeType":"ExpressionStatement","src":"1258:30:160"},{"expression":{"arguments":[{"id":76925,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76903,"src":"1305:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76926,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76893,"src":"1319:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:160","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":76928,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39778,"src":"1348:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":76929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76924,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1299:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76933,"nodeType":"ExpressionStatement","src":"1299:60:160"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":76906,"kind":"modifierInvocation","modifierName":{"id":76905,"name":"initializer","nameLocations":["1118:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1118:11:160"},"nodeType":"ModifierInvocation","src":"1118:11:160"}],"name":"initialize","nameLocation":"1078:10:160","parameters":{"id":76904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76903,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:160","nodeType":"VariableDeclaration","scope":76935,"src":"1089:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76902,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:160"},"returnParameters":{"id":76907,"nodeType":"ParameterList","parameters":[],"src":"1130:0:160"},"scope":76960,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76944,"nodeType":"FunctionDefinition","src":"1372:60:160","nodes":[],"body":{"id":76943,"nodeType":"Block","src":"1430:2:160","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":76938,"kind":"modifierInvocation","modifierName":{"id":76937,"name":"onlyOwner","nameLocations":["1403:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1403:9:160"},"nodeType":"ModifierInvocation","src":"1403:9:160"},{"arguments":[{"hexValue":"32","id":76940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":76941,"kind":"modifierInvocation","modifierName":{"id":76939,"name":"reinitializer","nameLocations":["1413:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"1413:13:160"},"nodeType":"ModifierInvocation","src":"1413:16:160"}],"name":"reinitialize","nameLocation":"1381:12:160","parameters":{"id":76936,"nodeType":"ParameterList","parameters":[],"src":"1393:2:160"},"returnParameters":{"id":76942,"nodeType":"ParameterList","parameters":[],"src":"1430:0:160"},"scope":76960,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76959,"nodeType":"FunctionDefinition","src":"1438:93:160","nodes":[],"body":{"id":76958,"nodeType":"Block","src":"1497:34:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76954,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76946,"src":"1513:2:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76955,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"1517:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76953,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1507:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76957,"nodeType":"ExpressionStatement","src":"1507:17:160"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":76951,"kind":"modifierInvocation","modifierName":{"id":76950,"name":"onlyOwner","nameLocations":["1487:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1487:9:160"},"nodeType":"ModifierInvocation","src":"1487:9:160"}],"name":"mint","nameLocation":"1447:4:160","parameters":{"id":76949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76946,"mutability":"mutable","name":"to","nameLocation":"1460:2:160","nodeType":"VariableDeclaration","scope":76959,"src":"1452:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76945,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76948,"mutability":"mutable","name":"amount","nameLocation":"1472:6:160","nodeType":"VariableDeclaration","scope":76959,"src":"1464:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76947,"name":"uint256","nodeType":"ElementaryTypeName","src":"1464:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1451:28:160"},"returnParameters":{"id":76952,"nodeType":"ParameterList","parameters":[],"src":"1497:0:160"},"scope":76960,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":76875,"name":"Initializable","nameLocations":["660:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39641,"src":"660:13:160"},"id":76876,"nodeType":"InheritanceSpecifier","src":"660:13:160"},{"baseName":{"id":76877,"name":"ERC20Upgradeable","nameLocations":["679:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":40258,"src":"679:16:160"},"id":76878,"nodeType":"InheritanceSpecifier","src":"679:16:160"},{"baseName":{"id":76879,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:160"],"nodeType":"IdentifierPath","referencedDeclaration":40320,"src":"701:24:160"},"id":76880,"nodeType":"InheritanceSpecifier","src":"701:24:160"},{"baseName":{"id":76881,"name":"OwnableUpgradeable","nameLocations":["731:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"731:18:160"},"id":76882,"nodeType":"InheritanceSpecifier","src":"731:18:160"},{"baseName":{"id":76883,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:160"],"nodeType":"IdentifierPath","referencedDeclaration":40489,"src":"755:22:160"},"id":76884,"nodeType":"InheritanceSpecifier","src":"755:22:160"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76960,40489,40646,41119,41540,43202,39387,40320,40258,41582,43166,43140,40535,39641],"name":"WrappedVara","nameLocation":"641:11:160","scope":76961,"usedErrors":[39223,39228,39404,39407,40355,40362,40549,41552,41557,41562,41571,41576,41581,44912,44917,44922],"usedEvents":[39234,39412,41520,43074,43083]}],"license":"UNLICENSED"},"id":160} \ 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":"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":"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":"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":"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":"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":"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"}]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051611cbe90816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f80516020611c69833981519152549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f80516020611c698339815191525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f80516020611b898339815191525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f80516020611b89833981519152555b825167ffffffffffffffff81116107a8576104495f80516020611be98339815191525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f80516020611be9833981519152555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f80516020611bc98339815191525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f80516020611bc9833981519152555b825167ffffffffffffffff81116107a8576105985f80516020611c498339815191525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f80516020611c49833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f80516020611c6983398151915254165f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c498339815191525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f80516020611c49833981519152556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f80516020611c498339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bc98339815191525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f80516020611bc983398151915255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f80516020611bc98339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f80516020611be98339815191525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f80516020611be98339815191525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f80516020611be98339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f80516020611b898339815191525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f80516020611b8983398151915255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f80516020611b898339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f80516020611c698339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611be983398151915254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f80516020611be98339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f80516020611c09833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f80516020611bc983398151915254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f80516020611c4983398151915254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f80516020611c0983398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f80516020611ba9833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f80516020611c698339815191525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f80516020611c2983398151915254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f80516020611b89833981519152546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f80516020611b898339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f80516020611c0983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f80516020611ba983398151915260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611ba983398151915284520360405f2055845f525f80516020611ba9833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c09833981519152546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f80516020611ba983398151915260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611ba98339815191528452036040862055805f80516020611c2983398151915254035f80516020611c2983398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f80516020611c2983398151915254908282018092116117ac575f80516020611c29833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f80516020611c2983398151915254035f80516020611c29833981519152555b604051908152a3565b8484525f80516020611ba9833981519152825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f80516020611c698339815191525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bc983398151915254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f80516020611c4983398151915254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220876fa3b8d0ec6917757682c3a8181195f1246da17e840283e4106a851ed888ff64736f6c634300081a0033","sourceMap":"632:990:160:-:0;;;;;;;8837:64:26;632:990:160;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;632:990:160;;7985:34:26;7981:146;;-1:-1:-1;632:990:160;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;632:990:160;-1:-1:-1;;;;;632:990:160;;;8837:64:26;632:990:160;;;8087:29:26;;632:990:160;;8087:29:26;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:26;;-1:-1:-1;7938:23:26;632:990:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f80516020611c69833981519152549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f80516020611c698339815191525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f80516020611b898339815191525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f80516020611b89833981519152555b825167ffffffffffffffff81116107a8576104495f80516020611be98339815191525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f80516020611be9833981519152555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f80516020611bc98339815191525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f80516020611bc9833981519152555b825167ffffffffffffffff81116107a8576105985f80516020611c498339815191525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f80516020611c49833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f80516020611c6983398151915254165f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c498339815191525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f80516020611c49833981519152556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f80516020611c498339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bc98339815191525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f80516020611bc983398151915255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f80516020611bc98339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f80516020611be98339815191525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f80516020611be98339815191525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f80516020611be98339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f80516020611b898339815191525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f80516020611b8983398151915255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f80516020611b898339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f80516020611c698339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611be983398151915254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f80516020611be98339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f80516020611c09833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f80516020611bc983398151915254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f80516020611c4983398151915254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f80516020611c0983398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f80516020611ba9833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f80516020611c698339815191525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f80516020611c69833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f80516020611c2983398151915254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f80516020611b89833981519152546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f80516020611b898339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f80516020611c0983398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f80516020611ba983398151915260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611ba983398151915284520360405f2055845f525f80516020611ba9833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c09833981519152546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f80516020611ba983398151915260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611ba98339815191528452036040862055805f80516020611c2983398151915254035f80516020611c2983398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f80516020611c2983398151915254908282018092116117ac575f80516020611c29833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f80516020611c2983398151915254035f80516020611c29833981519152555b604051908152a3565b8484525f80516020611ba9833981519152825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f80516020611c698339815191525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bc983398151915254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bc98339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f80516020611c4983398151915254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f80516020611c498339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220876fa3b8d0ec6917757682c3a8181195f1246da17e840283e4106a851ed888ff64736f6c634300081a0033","sourceMap":"632:990:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2357:1:25;632:990:160;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;:::-;632:990:160;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;4867:20:27;632:990:160;;:::i;:::-;4867:20:27;;:::i;:::-;:29;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:29;;:26;2297:97;;6967:25:66;7021:8;632:990:160;;;;;;;;;;;;972:64:31;632:990:160;;;;;;;;;;;;;;;;2435:78:29;632:990:160;2435:78:29;;632:990:160;1279:95:29;632:990:160;;1279:95:29;632:990:160;1279:95:29;;632:990:160;;;;;;;;;1279:95:29;;632:990:160;1279:95:29;632:990:160;1279:95:29;;632:990:160;;1279:95:29;;632:990:160;;1279:95:29;;632:990:160;;2435:78:29;;;632:990:160;2435:78:29;;:::i;:::-;632:990:160;2425:89:29;;4094:23:33;;:::i;:::-;3515:233:68;632:990:160;3515:233:68;;-1:-1:-1;;;3515:233:68;;;;;;;;;;632:990:160;;;3515:233:68;632:990:160;;3515:233:68;;6967:25:66;:::i;:::-;7021:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:990:160;2638:15:29;;;2634:88;;10117:4:27;;;;;:::i;2634:88:29:-;2676:35;;;;;632:990:160;2676:35:29;632:990:160;;;;;;2676:35:29;2297:97;2350:33;;;;632:990:160;2350:33:29;632:990:160;;;;2350:33:29;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;4301:16:26;632:990:160;;;;4726:16:26;;:34;;;;632:990:160;4805:1:26;4790:16;:50;;;;632:990:160;4855:13:26;:30;;;;632:990:160;4851:91:26;;;-1:-1:-1;;632:990:160;;4805:1:26;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;4979:67:26;;632:990:160;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:160;;;;;;;;;;;:::i;:::-;821:14;632:990;;-1:-1:-1;;;632:990:160;821:14;;;6893:76:26;;:::i;:::-;;;:::i;:::-;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;6893:76:26;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:990:160;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:160;;;;6893:76:26;;:::i;:::-;632:990:160;;;;;;;:::i;:::-;4805:1:26;632:990:160;;-1:-1:-1;;;632:990:160;;;;6893:76:26;;:::i;:::-;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;2600:7:27;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;2806:64:33;632:990:160;;;3902:16:33;632:990:160;-1:-1:-1;;;;;632:990:160;;8803:21:27;8799:91;;941:9:160;8928:5:27;;;:::i;:::-;5066:101:26;;632:990:160;5066:101:26;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;5142:14:26;632:990:160;;;4805:1:26;632:990:160;;5142:14:26;632:990:160;8799:91:27;8847:32;;;632:990:160;8847:32:27;632:990:160;;;;;8847:32:27;632:990:160;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;2600:7:27;632:990:160;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:26;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;4979:67:26;-1:-1:-1;;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;4979:67:26;;;4851:91;6498:23;;;632:990:160;4908:23:26;632:990:160;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;4616:5:27;632:990:160;;:::i;:::-;;;966:10:30;;4616:5:27;:::i;:::-;632:990:160;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;;632:990:160;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;-1:-1:-1;;;;;632:990:160;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2806:64:33;632:990:160;5777:18:33;:43;;;632:990:160;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:33;632:990:160;;;;6000:4:33;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:990:160;;;;;;;;;;;;-1:-1:-1;;;632:990:160;;;;;;;5777:43:33;632:990:160;5799:16:33;632:990:160;5799:21:33;5777:43;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;;;;;;;;;972:64:31;632:990:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;1479:5:28;632:990:160;;:::i;:::-;;;966:10:30;1448:5:28;966:10:30;;1448:5:28;;:::i;:::-;1479;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;632:990:160;;;;;;;-1:-1:-1;;;;;632:990:160;3975:40:25;632:990:160;;3975:40:25;632:990:160;;;;;;;-1:-1:-1;;632:990:160;;;;-1:-1:-1;;;;;632:990:160;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;6431:44:26;;;;632:990:160;6427:105:26;;1427:1:160;632:990;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;6656:20:26;632:990:160;;;1427:1;632:990;;6656:20:26;632:990:160;6431:44:26;632:990:160;1427:1;632:990;;;6450:25:26;;6431:44;;632:990:160;;;;;;-1:-1:-1;;632:990:160;;;;1005:5:28;632:990:160;;966:10:30;1005:5:28;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;;:::i;:::-;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;632:990:160;;8803:21:27;8799:91;;8928:5;632:990:160;;;8928:5:27;;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;4094:23:33;;:::i;:::-;632:990:160;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;;;;1512:2;632:990;;;;;;;;;-1:-1:-1;;632:990:160;;;;6198:5:27;632:990:160;;:::i;:::-;;;:::i;:::-;;;966:10:30;6162:5:27;966:10:30;;6162:5:27;;:::i;:::-;6198;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;;10117:4:27;632:990:160;;:::i;:::-;;;966:10:30;;10117:4:27;:::i;632:990:160:-;;;;;;-1:-1:-1;;632:990:160;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;;;;-1:-1:-1;632:990:160;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:160;;;;;;;;-1:-1:-1;;632:990:160;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:160;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:160;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:990:160;;;;;4867:13:27;632:990:160;;;;;;:::o;3405:215:25:-;-1:-1:-1;;;;;632:990:160;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;632:990:160;;;;;;;-1:-1:-1;;;;;632:990:160;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;632:990:160;;3509:1:25;3534:31;11745:477:27;;;4867:20;;;:::i;:::-;632:990:160;;;;;;;-1:-1:-1;632:990:160;;;;-1:-1:-1;632:990:160;;;;;11910:37:27;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:990:160;;11141:19:27;11137:89;;-1:-1:-1;;;;;632:990:160;;11239:21:27;11235:90;;11334:20;;;:::i;:::-;:29;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;-1:-1:-1;632:990:160;;;;;11906:310:27;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:27;-1:-1:-1;11283:31:27;632:990:160;;-1:-1:-1;11283:31:27;11137:89;11183:32;;;-1:-1:-1;11183:32:27;-1:-1:-1;11183:32:27;632:990:160;;-1:-1:-1;11183:32:27;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:27;632:990:160;;;;;;12018:60:27;632:990:160;;;;;;-1:-1:-1;12018:60:27;6605:300;-1:-1:-1;;;;;632:990:160;;6688:18:27;;6684:86;;-1:-1:-1;;;;;632:990:160;;6783:16:27;;6779:86;;632:990:160;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;6704:1:27;632:990:160;;7609:19:27;;;7605:115;;632:990:160;8358:25:27;632:990:160;;;;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;;6704:1:27;632:990:160;;;6704:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;6704:1:27;632:990:160;;;;;;;;;;;;8358:25:27;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:990:160;;;;;;6704:1:27;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:990:160;;6704:1:27;6729:30;2658:162:25;-1:-1:-1;;;;;;;;;;;632:990:160;-1:-1:-1;;;;;632:990:160;966:10:30;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:30;2763:40:25;632:990:160;;-1:-1:-1;2763:40:25;9259:206:27;;;;-1:-1:-1;;;;;632:990:160;9329:21:27;;9325:89;;632:990:160;9348:1:27;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;9348:1:27;632:990:160;;7609:19:27;;;7605:115;;632:990:160;;9348:1:27;632:990:160;;8358:25:27;632:990:160;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;8358:25:27;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:990:160;;;;;;9348:1:27;7655:50;10976:487;;-1:-1:-1;;;;;632:990:160;;;11141:19:27;;11137:89;;-1:-1:-1;;;;;632:990:160;;11239:21:27;;11235:90;;11415:31;11334:20;;632:990:160;11334:20:27;;:::i;:::-;632:990:160;-1:-1:-1;632:990:160;;;;;-1:-1:-1;632:990:160;;;;;;;11415:31:27;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;-1:-1:-1;;;;;632:990:160;;;;8358:25:27;;632:990:160;;7918:16:27;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;7914:429:27;632:990:160;;;;;8358:25:27;7220:1170::o;7914:429::-;632:990:160;;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;;;;;7914:429:27;;632:990:160;;;;;941:9;;;;;632:990;941:9;4130:191:33;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:990:160;;4221:92:33;;;;632:990:160;2073:95:33;632:990:160;;;2073:95:33;;632:990:160;2073:95:33;;;632:990:160;4284:13:33;2073:95;;;632:990:160;4307:4:33;2073:95;;;632:990:160;2073:95:33;4221:92;;;;;;:::i;:::-;632:990:160;4211:103:33;;4130:191;:::o;7084:141:26:-;632:990:160;-1:-1:-1;;;;;;;;;;;632:990:160;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;5140:1530:66;;;6199:66;6186:79;;6182:164;;632:990:160;;;;;;-1:-1:-1;632:990:160;;;;;;;;;;;;;;;;;;;6457:24:66;;;;;;;;;-1:-1:-1;6457:24:66;-1:-1:-1;;;;;632:990:160;;6495:20:66;6491:113;;6614:49;-1:-1:-1;6614:49:66;-1:-1:-1;5140:1530:66;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:66;6457:24;6531:62;-1:-1:-1;6531:62:66;:::o;6457:24::-;632:990:160;;;-1:-1:-1;632:990:160;;;;;6182:164:66;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;7196:532::-;632:990:160;;;;;;7282:29:66;;;7327:7;;:::o;7278:444::-;632:990:160;7378:38:66;;632:990:160;;7439:23:66;;;7291:20;7439:23;632:990:160;7291:20:66;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;632:990:160;;;7291:20:66;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;632:990:160;;;7291:20:66;7679:32;632:990:160;;;;7291:20:66;632:990:160;;;;;7291:20:66;632:990:160;7058:687:33;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:33;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:33;632:990:160;7603:15:33;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:990:160:-;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;-1:-1:-1;632:990:160;;;;;;;;;;;-1:-1:-1;632:990:160;;7966:723:33;632:990:160;;-1:-1:-1;;;;;;;;;;;632:990:160;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:33;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:33;632:990:160;8541:18:33;;;;8579:20;:::o;632:990:160:-;-1:-1:-1;;;;;;;;;;;;632:990:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:160;;;-1:-1:-1;632:990:160;;;;;;;;;;;-1:-1:-1;632:990:160;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","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","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"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\":[{\"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\"},{\"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\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}],\"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.\"}],\"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.\"}]},\"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.\"}},\"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\":\"See {IERC20-allowance}.\"},\"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\":\"See {IERC20-balanceOf}.\"},\"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. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"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.\"},\"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\":\"See {IERC20-totalSupply}.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"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-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/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/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152\",\"dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL\"]},\"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\":\"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883\",\"dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify\"]},\"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\":\"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e\",\"dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718\",\"dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"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":[{"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":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"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"}],"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":"See {IERC20-allowance}."},"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":"See {IERC20-balanceOf}."},"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. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"See {IERC-5267}."},"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."},"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":"See {IERC20-totalSupply}."},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/","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/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","symbiotic-core/=lib/symbiotic-core/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"cancun","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":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72","urls":["bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152","dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL"],"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":"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506","urls":["bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883","dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify"],"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":"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf","urls":["bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e","dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd","urls":["bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718","dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":76980,"exportedSymbols":{"ERC20BurnableUpgradeable":[40320],"ERC20PermitUpgradeable":[40489],"ERC20Upgradeable":[40258],"Initializable":[39641],"OwnableUpgradeable":[39387],"WrappedVara":[76979]},"nodeType":"SourceUnit","src":"39:1584:160","nodes":[{"id":76874,"nodeType":"PragmaDirective","src":"39:24:160","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":76876,"nodeType":"ImportDirective","src":"65:96:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":76980,"sourceUnit":39642,"symbolAliases":[{"foreign":{"id":76875,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39641,"src":"73:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76878,"nodeType":"ImportDirective","src":"162:102:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":76980,"sourceUnit":40259,"symbolAliases":[{"foreign":{"id":76877,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40258,"src":"170:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76880,"nodeType":"ImportDirective","src":"265:133:160","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":76980,"sourceUnit":40321,"symbolAliases":[{"foreign":{"id":76879,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"273:24:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76882,"nodeType":"ImportDirective","src":"399:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76980,"sourceUnit":39388,"symbolAliases":[{"foreign":{"id":76881,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"407:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76884,"nodeType":"ImportDirective","src":"501:129:160","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":76980,"sourceUnit":40490,"symbolAliases":[{"foreign":{"id":76883,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40489,"src":"509:22:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76979,"nodeType":"ContractDefinition","src":"632:990:160","nodes":[{"id":76897,"nodeType":"VariableDeclaration","src":"784:51:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:160","scope":76979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76895,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":76896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":76900,"nodeType":"VariableDeclaration","src":"841:46:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:160","scope":76979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76898,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":76899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":76903,"nodeType":"VariableDeclaration","src":"893:57:160","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:160","scope":76979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76901,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":76902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:160","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":76911,"nodeType":"FunctionDefinition","src":"1010:53:160","nodes":[],"body":{"id":76910,"nodeType":"Block","src":"1024:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76907,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"1034:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76909,"nodeType":"ExpressionStatement","src":"1034:22:160"}]},"documentation":{"id":76904,"nodeType":"StructuredDocumentation","src":"957:48:160","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76905,"nodeType":"ParameterList","parameters":[],"src":"1021:2:160"},"returnParameters":{"id":76906,"nodeType":"ParameterList","parameters":[],"src":"1024:0:160"},"scope":76979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76945,"nodeType":"FunctionDefinition","src":"1069:297:160","nodes":[],"body":{"id":76944,"nodeType":"Block","src":"1130:236:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76919,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76897,"src":"1153:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":76920,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76900,"src":"1165:12:160","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":76918,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39709,"src":"1140:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":76921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76922,"nodeType":"ExpressionStatement","src":"1140:38:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76923,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40279,"src":"1188:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":76924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76925,"nodeType":"ExpressionStatement","src":"1188:22:160"},{"expression":{"arguments":[{"id":76927,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76913,"src":"1235:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76926,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39247,"src":"1220:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76929,"nodeType":"ExpressionStatement","src":"1220:28:160"},{"expression":{"arguments":[{"id":76931,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76897,"src":"1277:10:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":76930,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40376,"src":"1258:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":76932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76933,"nodeType":"ExpressionStatement","src":"1258:30:160"},{"expression":{"arguments":[{"id":76935,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76913,"src":"1305:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76936,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76903,"src":"1319:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:160","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":76938,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[76963],"referencedDeclaration":76963,"src":"1348:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":76939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76934,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1299:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76943,"nodeType":"ExpressionStatement","src":"1299:60:160"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":76916,"kind":"modifierInvocation","modifierName":{"id":76915,"name":"initializer","nameLocations":["1118:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":39495,"src":"1118:11:160"},"nodeType":"ModifierInvocation","src":"1118:11:160"}],"name":"initialize","nameLocation":"1078:10:160","parameters":{"id":76914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76913,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:160","nodeType":"VariableDeclaration","scope":76945,"src":"1089:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76912,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:160"},"returnParameters":{"id":76917,"nodeType":"ParameterList","parameters":[],"src":"1130:0:160"},"scope":76979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76954,"nodeType":"FunctionDefinition","src":"1372:60:160","nodes":[],"body":{"id":76953,"nodeType":"Block","src":"1430:2:160","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":76948,"kind":"modifierInvocation","modifierName":{"id":76947,"name":"onlyOwner","nameLocations":["1403:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1403:9:160"},"nodeType":"ModifierInvocation","src":"1403:9:160"},{"arguments":[{"hexValue":"32","id":76950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":76951,"kind":"modifierInvocation","modifierName":{"id":76949,"name":"reinitializer","nameLocations":["1413:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39542,"src":"1413:13:160"},"nodeType":"ModifierInvocation","src":"1413:16:160"}],"name":"reinitialize","nameLocation":"1381:12:160","parameters":{"id":76946,"nodeType":"ParameterList","parameters":[],"src":"1393:2:160"},"returnParameters":{"id":76952,"nodeType":"ParameterList","parameters":[],"src":"1430:0:160"},"scope":76979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76963,"nodeType":"FunctionDefinition","src":"1438:83:160","nodes":[],"body":{"id":76962,"nodeType":"Block","src":"1495:26:160","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":76960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1512:2:160","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":76959,"id":76961,"nodeType":"Return","src":"1505:9:160"}]},"baseFunctions":[39778],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"1447:8:160","overrides":{"id":76956,"nodeType":"OverrideSpecifier","overrides":[],"src":"1470:8:160"},"parameters":{"id":76955,"nodeType":"ParameterList","parameters":[],"src":"1455:2:160"},"returnParameters":{"id":76959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76963,"src":"1488:5:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":76957,"name":"uint8","nodeType":"ElementaryTypeName","src":"1488:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1487:7:160"},"scope":76979,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":76978,"nodeType":"FunctionDefinition","src":"1527:93:160","nodes":[],"body":{"id":76977,"nodeType":"Block","src":"1586:34:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76973,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76965,"src":"1602:2:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76974,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76967,"src":"1606:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76972,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40090,"src":"1596:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76976,"nodeType":"ExpressionStatement","src":"1596:17:160"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":76970,"kind":"modifierInvocation","modifierName":{"id":76969,"name":"onlyOwner","nameLocations":["1576:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":39282,"src":"1576:9:160"},"nodeType":"ModifierInvocation","src":"1576:9:160"}],"name":"mint","nameLocation":"1536:4:160","parameters":{"id":76968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76965,"mutability":"mutable","name":"to","nameLocation":"1549:2:160","nodeType":"VariableDeclaration","scope":76978,"src":"1541:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76964,"name":"address","nodeType":"ElementaryTypeName","src":"1541:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76967,"mutability":"mutable","name":"amount","nameLocation":"1561:6:160","nodeType":"VariableDeclaration","scope":76978,"src":"1553:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:28:160"},"returnParameters":{"id":76971,"nodeType":"ParameterList","parameters":[],"src":"1586:0:160"},"scope":76979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":76885,"name":"Initializable","nameLocations":["660:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":39641,"src":"660:13:160"},"id":76886,"nodeType":"InheritanceSpecifier","src":"660:13:160"},{"baseName":{"id":76887,"name":"ERC20Upgradeable","nameLocations":["679:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":40258,"src":"679:16:160"},"id":76888,"nodeType":"InheritanceSpecifier","src":"679:16:160"},{"baseName":{"id":76889,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:160"],"nodeType":"IdentifierPath","referencedDeclaration":40320,"src":"701:24:160"},"id":76890,"nodeType":"InheritanceSpecifier","src":"701:24:160"},{"baseName":{"id":76891,"name":"OwnableUpgradeable","nameLocations":["731:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":39387,"src":"731:18:160"},"id":76892,"nodeType":"InheritanceSpecifier","src":"731:18:160"},{"baseName":{"id":76893,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:160"],"nodeType":"IdentifierPath","referencedDeclaration":40489,"src":"755:22:160"},"id":76894,"nodeType":"InheritanceSpecifier","src":"755:22:160"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76979,40489,40646,41119,41540,43202,39387,40320,40258,41582,43166,43140,40535,39641],"name":"WrappedVara","nameLocation":"641:11:160","scope":76980,"usedErrors":[39223,39228,39404,39407,40355,40362,40549,41552,41557,41562,41571,41576,41581,44912,44917,44922],"usedEvents":[39234,39412,41520,43074,43083]}],"license":"UNLICENSED"},"id":160} \ No newline at end of file diff --git a/ethexe/ethereum/src/wvara/mod.rs b/ethexe/ethereum/src/wvara/mod.rs index 2e333101e38..04c43a464f7 100644 --- a/ethexe/ethereum/src/wvara/mod.rs +++ b/ethexe/ethereum/src/wvara/mod.rs @@ -104,6 +104,15 @@ impl WVaraQuery { ))) } + pub async fn decimals(&self) -> Result { + self.0 + .decimals() + .call() + .await + .map(|res| res._0) + .map_err(Into::into) + } + pub async fn total_supply(&self) -> Result { self.0 .totalSupply()